home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / os2 / ext2_200.zip / EXT2-OS2.INF (.txt) < prev    next >
OS/2 Help File  |  1996-09-23  |  90KB  |  2,306 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4. ext2-os2 is a file system driver that allows OS/2 to seamlessly access Linux 
  5. native partitions (ext2fs partitions) in both read and write modes. Once 
  6. installed, Linux partitions appear as standard OS/2 drive letters. 
  7.  
  8. My initial purpose was to get limited read only access to ext2fs  partitions 
  9. from my OS/2 system, so at the beginning (version 0.1 alpha back in June 1995), 
  10. it was more a quick and dirty rewrite than a clean and full port of the Linux 
  11. ext2fs  file system kernel code. 
  12.  
  13. I've improved it to reuse as much original ext2fs code as possible in order to 
  14. get an almost full featured ext2fs driver on OS/2.  I wrote a kind of IFS to 
  15. VFS translation layer, and ported some Linux kernel services in order to 
  16. minimize the changes required into the ext2fs sources. Now that ext2-os2 is 32 
  17. bits, these changes are minimal. 
  18.  
  19. This version is almost full featured : the main restriction is that ext2-os2 
  20. does not support extended attributes (EAS). (NOTE, to boot OS/2 from a Linux 
  21. partition the 16 bits version of ext2-os2 is required. This will be corrected 
  22. in the future). 
  23.  
  24. Before using ext2-os2, please read the following : "***** IMPORTANT WARNING - 
  25. READ THIS FIRST *****" 
  26.  
  27. Writing an IFS is not a simple thing, for several reasons :  first there's only 
  28. one IBM document on the IFS interface, and IBM provides it 'AS IS' ... it means 
  29. lots of guess !  The second one is that the IFS interface is complex (lots of 
  30. stuff to support, EAS ...)  and still 16 bits.  For instance making the 
  31. Workplace Shell survive to my IFS was a headache...  The third one is that the 
  32. OS/2 IFS interface is quite different from the Linux VFS interface :  I had to 
  33. rewrite from scratch several Linux VFS or even kernel services.  The fourth 
  34. thing is the fact that OS/2 is a multithreaded OS :  you can be reentered for 
  35. the SAME open file instance in your IFS, so locking of resources must be more 
  36. strict than under Linux, not even speaking of OS/2 SMP, which is really not 
  37. supported. 
  38.  
  39. DISCLAIMER : 
  40.   THE FACT THAT I WORK FOR IBM HAS NOTHING TO DO WITH THIS DRIVER.  I'M WRITING 
  41. IT AT HOME, DURING MY SPARE TIME, FOR MY OWN PURPOSES, ON MY OWN MACHINE, 
  42. WITHOUT ANY IBM MEANS.  I USED ONLY IBM PUBLISHED DOCUMENTS TO WRITE IT :  I AM 
  43. ABSOLUTELY NOT RELATED TO THE OS/2 DEVELOPMENT TEAM AND THUS I HAVE ABSOLUTELY 
  44. NO ACCESS TO ANY CONFIDENTIAL OS/2 IFS RELATED INFORMATION. 
  45.  
  46. Anyway I hope you'll enjoy trying this driver, and even if I don't have much 
  47. time, I'll try to keep improving it.  I wait for your feedback on this version 
  48. :  comments, ideas, bug reports and contributions are welcome. Success stories 
  49. do also interest me ! 
  50.  
  51. Matthieu WILLM 
  52.  
  53.  willm@ibm.net                 Home 
  54.  mwillm@vnet.ibm.com           Work 
  55.  
  56.  Note:  English is not my native language ... so this document isn't certainly 
  57.         perfect. 
  58.  
  59.  
  60. ΓòÉΓòÉΓòÉ 2. Copyright information ΓòÉΓòÉΓòÉ
  61.  
  62.       Copyright notice for the ext2fs IFS driver 
  63.       Copyright notice for the ext2fs partition filter 
  64.  
  65.  
  66. ΓòÉΓòÉΓòÉ 2.1. Copyright notice for the ext2fs IFS driver ΓòÉΓòÉΓòÉ
  67.  
  68.     Linux ext2fs file system driver for OS/2 2.x and WARP - Allows OS/2 to
  69.     access your Linux ext2fs partitions as normal drive letters.
  70.     Copyright (C) 1995, 1996  Matthieu WILLM
  71.  
  72.     This program is free software; you can redistribute it and/or modify
  73.     it under the terms of the GNU General Public License as published by
  74.     the Free Software Foundation; either version 2 of the License, or
  75.     (at your option) any later version.
  76.  
  77.     This program is distributed in the hope that it will be useful,
  78.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  79.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  80.     GNU General Public License for more details.
  81.  
  82.     You should have received a copy of the GNU General Public License
  83.     along with this program; if not, write to the Free Software
  84.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  85.  
  86. This driver contains some copyrighted code whose owners are : 
  87.  
  88.      Linus Torvalds, the author of the Linux kernel 
  89.      Remy Card, the main author of the Linux ext2fs file system, and all 
  90.       contributors to Linux ext2fs 
  91.      Werner Almesberger, the author of the Linux FAT file system 
  92.      Jean Loup Gailly,  the author of gzip 
  93.      ...probably many other contributors to the Linux kernel. 
  94.  
  95.  
  96. ΓòÉΓòÉΓòÉ 2.2. Copyright notice for the ext2fs partition filter ΓòÉΓòÉΓòÉ
  97.  
  98. /************************************************************************/
  99. /*                       Linux partition filter.                        */
  100. /*          (C) Copyright Deon van der Westhuysen, July 1995.           */
  101. /*                                                                      */
  102. /*  Dedicated to Jesus Christ, my Lord and Saviour.                     */
  103. /*                                                                      */
  104. /* This program is free software; you can redistribute it and/or modify */
  105. /* it under the terms of the GNU General Public License as published by */
  106. /* the Free Software Foundation; either version 2, or (at your option)  */
  107. /* any later version.                                                   */
  108. /*                                                                      */
  109. /* This program is distributed in the hope that it will be useful,      */
  110. /* but WITHOUT ANY WARRANTY; without even the implied warranty of       */
  111. /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        */
  112. /* GNU General Public License for more details.                         */
  113. /*                                                                      */
  114. /* You should have received a copy of the GNU General Public License    */
  115. /* along with this program; if not, write to the Free Software          */
  116. /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.            */
  117. /*                                                                      */
  118. /*  This code is still under development; expect some rough edges.      */
  119. /*                                                                      */
  120. /************************************************************************/
  121.  
  122.  
  123. ΓòÉΓòÉΓòÉ 3. ***** IMPORTANT WARNING - READ THIS FIRST ***** ΓòÉΓòÉΓòÉ
  124.  
  125. ext2-os2 is a FILE SYSTEM DRIVER. Being a driver it runs at the most privileged 
  126. level of the OS/2 operating system, known as "kernel mode".  IN KERNEL MODE 
  127. THERE IS NO MORE CRASH PROTECTION.  It means that if a bug occurs in the driver 
  128. IT CAN CAUSE A HANG OR A SYSTEM HALT, AND THUS CAN CAUSE LOSS OF DATA. 
  129.  
  130.      I STRONGLY SUGGEST YOU TO MAKE A BACKUP OF ALL YOUR DATA (EVEN IF THEY 
  131.       ARE NOT LOCATED ON A LINUX PARTITION) PRIOR TO USE THIS DRIVER. 
  132.      DON'T USE THIS DRIVER ON A PRODUCTION MACHINE, OR IF YOU MANIPULATE 
  133.       CRITICAL DATA. 
  134.      USE IT AT YOUR OWN RISKS, AND ONLY ON A MACHINE YOU ACCEPT TO CRASH AND 
  135.       REINSTALL. 
  136.      BE AWARE THAT THIS DRIVER WILL GIVE FULL UNRESTRICTED (ROOT) ACCESS TO 
  137.       ALL YOUR EXT2FS PARTITIONS FROM OS/2. 
  138.  
  139.  
  140. ΓòÉΓòÉΓòÉ 4. Installation instructions ΓòÉΓòÉΓòÉ
  141.  
  142.  This chapter describes the installation and setup instructions 
  143.  
  144.       Step 1 - Things to do BEFORE installing ext2-os2 
  145.       Step 2 - Make OS/2 see your Linux ext2fs partitions 
  146.       Step 3 - Copying the files to your hard drive 
  147.       Step 4 - Using the ext2-os2 monitoring tool 
  148.       Step 5 - Specifying command line parameters 
  149.  
  150.  
  151. ΓòÉΓòÉΓòÉ 4.1. Step 1 - Things to do BEFORE installing ext2-os2 ΓòÉΓòÉΓòÉ
  152.  
  153. Here are things you must do before installing this version of ext2-os2 : 
  154.  
  155.    1. Please run e2fsck from Linux on ALL your ext2fs partitions BEFORE 
  156.       installing ext2-os2. (You might have to boot Linux from floppy to do 
  157.       this, especially to run e2fsck on your root partition). 
  158.    2. I STRONGLY suggest you to first backup any data you don't want to loose 
  159.       BEFORE trying this driver. 
  160.    3. Make a backup copy of your CONFIG.SYS 
  161.    4. Have the two OS/2 kicker diskettes handy ,  with a full screen editor, so 
  162.       that you can restore your CONFIG.SYS if the system crashed at boot time. 
  163.       (This is not needed with WARP : Alt+F1 C at boot time will do the trick) 
  164.    5. Prepare a Linux boot diskette, with e2fsck on it. 
  165.    6. If you installed a previous version of ext2-os2, then comment out the 
  166.       following CONFIG.SYS statements and reboot your system to ensure that no 
  167.       ext2-os2 file is locked while installing the new version. 
  168.           IFS = <path>\ext2-os2.ifs <parms> 
  169.           RUN = <path>\ext2_lw.exe 
  170.           BASEDEV = ext2flt.flt <parms> 
  171.  
  172.  
  173. ΓòÉΓòÉΓòÉ 4.2. Step 2 - Make OS/2 see your Linux ext2fs partitions ΓòÉΓòÉΓòÉ
  174.  
  175.  This chapter describes how to make OS/2 see your Linux ext2fs partitions 
  176.  
  177.  
  178. ΓòÉΓòÉΓòÉ 4.2.1. Understanding how does OS/2 assign drive letters ΓòÉΓòÉΓòÉ
  179.  
  180.  OS2DASD.DMD is the block device managing fixed partitionnable disks and 
  181. floppies. It is always (as far as I know) the first block device loaded by the 
  182. system. It first scans every .add drivers for physical disks. Then it reads the 
  183. partition table of each disk. It first looks for active primary OS/2 partitions 
  184. (Types 01, 04, 06 and 07) and installs a block device for each of them It 
  185. repeats this for each physical drive in the system. Then it looks for extended 
  186. volumes on the first physical drive (type 05 partition), reads the extended 
  187. boot record, looks for an OS/2 partition and assign it a drive letter, looks 
  188. for another extended volume ... and so on until no more extended volume is 
  189. found on the first disk. It them repeats this for each physical drive. 
  190.  
  191. Example : 
  192.  
  193. Γûá Scans all *.add driver for fixed disks - found 2
  194. Γûá Reads the MBR of physical disk 1
  195.         Γûá Found an OS/2 type 7 partition (active primary OS/2 IFS)  - Install a block device (C:)
  196.         Γûá Found an unknown type 0x83 partition                      - skip it
  197.         Γûá Found an OS/2 type 5 partition (extended volume)          - skip it
  198.         Γûá No more primary partition
  199. Γûá Reads the MBR of physical disk 2
  200.         Γûá Found an OS/2 type 7 partition                            - Install a block device (D:)
  201.         Γûá Found an unknown type 17 (inactive primary OS/2 IFS)      - skip it
  202.         Γûá Found an OS/2 type 5 partition (extended vol)             - skip it
  203.         Γûá No more primary partition
  204. Now done for primary partitions - processing extended volumes
  205. Γûá Reread the MBR of physical disk 1
  206.         Γûá Found an OS/2 type 5 partition (extended volume)
  207.                 Γûá Reads the extended boot record of the extended volume
  208.                         Γûá Found a OS/2 type 7 partition             - Install a block device (E:)
  209.                         Γûá Found an OS/2 type 5 partition
  210.                                 Γûá Reads the extended boot record
  211.                                     Γûá Found a OS/2 type 7 partition - Install a block device (F:)
  212.                                     Γûá No more partition
  213. Γûá Reread the MBR of physical disk 2
  214.         Γûá Found an OS/2 type 5 partition (extended volume)
  215.                 Γûá Reads the extended boot record of the extended volume
  216.                         Γûá Found a OS/2 type 7 partition             - Install a block device (G:)
  217.                         Γûá No more partition
  218.  
  219. Make OS/2 see your Linux ext2fs partitions 
  220.  
  221.  
  222. ΓòÉΓòÉΓòÉ 4.2.2. Make OS/2 see your Linux ext2fs partitions. ΓòÉΓòÉΓòÉ
  223.  
  224. During "normal" operations, OS/2 will not assign a drive letter to the Linux 
  225. partitions,  because their type (0x83) is not one of the types OS/2 normally 
  226. recognize. An installable file system driver does not have any control on how 
  227. block devices are assigned : this is a device driver issue. If we don't do 
  228. anything, the ext2fs IFS won't be very useful, since OS/2 doesn't even call it 
  229. (no block device allocated). 
  230.  
  231. In order for OS/2 to see your ext2fs partition, you must either change your 
  232. Linux ext2fs partition ID from 0x83 (Linux native) to 0x7 (OS/2 IFS - and not 
  233. OS/2 HPFS as stated in the Linux fdisk documentation), or make OS/2 think type 
  234. 0x83 partitions are type 0x7 partitions. 
  235.  
  236. In the first case we must manually alter the partition table, and in the second 
  237. case we must use a special filter device driver - ext2flt.flt - whose purpose 
  238. is to show a "hacked" partition table to OS2DASD.DMD. 
  239.  
  240. Here's how ext2flt.flt works : A virtual fixed disk is created for each 
  241. partition under control of the driver. These virtual fixed disks each contain 
  242. one extended partition with a logical drive in it. Since OS2DASD.DMD that 
  243. controls fixed disks first assigns drive letters to primary partitions the 
  244. virtual partitions are tacked on at the end of allocated drive letters. (To 
  245. control the mounting order of all partitions OS2DASD is prevented from directly 
  246. accessing the fixed disks and the filter presents it with an alternate list of 
  247. partitions.) 
  248.  
  249. BE CAREFUL : IF YOU DECIDE TO CHANGE PARTITION ID MANUALLY BE AWARE THAT IT CAN 
  250. CHANGE YOUR DRIVE LETTERS AND MAKE OS/2 UNBOOTABLE !! 
  251.  
  252. Examples being better than a long speach, let's look at some different 
  253. situations : 
  254.  
  255.       Example 1 
  256.       Example 2 
  257.       Example 3 
  258.  
  259.  
  260. ΓòÉΓòÉΓòÉ 4.3. Step 3 - Copying the files to your hard drive ΓòÉΓòÉΓòÉ
  261.  
  262.      Installation using the "Device Driver Install" object 
  263.      Manual installation 
  264.  
  265.  
  266. ΓòÉΓòÉΓòÉ 4.3.1. Installation using the "Device Driver Install" object ΓòÉΓòÉΓòÉ
  267.  
  268.    1. Open the "OS/2 System" folder 
  269.    2. Open the "System Setup" folder 
  270.    3. Open the "Device Driver Install" object 
  271.         a. Type in the "source directory" entry field the path where you 
  272.            decompacted the files 
  273.         b. Type in the "target directory" your OS/2 boot drive 
  274.         c. Click on the "Install..." push button 
  275.         d. Select the drivers to install (select both of them) : 
  276.                "Linux ext2fs file system driver (IFS) version 2.0 for OS/2" 
  277.                "ext2flt - Filter to make Linux partitions visable to OS/2." 
  278.         e. Click on OK 
  279.    4. Add <boot drive>:\OS2\FS\EXT2 to the PATH and LIBPATH statements in your 
  280.       CONFIG.SYS 
  281.    5. Set and/or change command line parameters for ext2-os2.ifs and 
  282.       ext2flt.flt. 
  283.    6. Reboot your computer 
  284.  
  285.  
  286. ΓòÉΓòÉΓòÉ 4.3.2. Manual installation ΓòÉΓòÉΓòÉ
  287.  
  288. ext2flt installation 
  289.  
  290.    1. copy ext2flt.flt and ext2flt.sym in  <boot drive>\OS2 or in <boot 
  291.       drive>\OS2\BOOT (WARP only) 
  292.    2. add the following line in CONFIG.SYS 
  293.  
  294.             BASEDEV=EXT2FLT.FLT
  295.  
  296.    3. if necessary, adjust ext2flt command line parameters (for instance /W if 
  297.       you want write access) 
  298.  
  299.  ext2-os2 installation 
  300.  
  301.    1. copy mwdd32.sys and mwdd32.sym in  <boot drive>\OS2 or in <boot 
  302.       drive>\OS2\BOOT (WARP only) 
  303.    2. add the following line in CONFIG.SYS 
  304.  
  305.             BASEDEV=MWDD32.SYS
  306.  
  307.    3. make a directory to hold ext2-os2 files somewhere but NOT on a Linux 
  308.       partition. 
  309.    4. add this directory at the end of the PATH and LIBPATH statements in 
  310.       CONFIG.SYS 
  311.    5. copy the following files to that directory : 
  312.           ext2-os2.ifs 
  313.           ext2-os2.exe 
  314.           sync.exe 
  315.           ext2_lw.exe 
  316.           ext2-os2.inf 
  317.           ext2-os2.htm 
  318.           ext2-os2.sym 
  319.           ext2-os2.ddp 
  320.           vfsapi.dll 
  321.           vfsapi.lib 
  322.           uext2.dll 
  323.    6. add the following lines in your CONFIG.SYS 
  324.  
  325.             IFS=<path>\ext2-os2.ifs -cache:256 -errors=panic
  326.             RUN=<path>\ext2_lw.exe
  327.  
  328.    7. if necessary, adjust ext2-os2.ifs command line parameters (for instance 
  329.       -rw if you want write access) 
  330.  
  331.  Note:  In CONFIG.SYS, ext2-os2.ifs MUST be located AFTER the IFS managing the 
  332.         boot drive (HPFS.IFS usually). ext2-os2.ifs can appear at the head of 
  333.         CONFIG.SYS only if you boot OS/2 from a Linux partition. 
  334.  
  335.  
  336. ΓòÉΓòÉΓòÉ 4.4. Step 4 - Using the ext2-os2 monitoring tool ΓòÉΓòÉΓòÉ
  337.  
  338. ext2-os2.exe is a monitoring tool to retrieve data from ext2-os2.ifs. It is a 
  339. PM notebook containing : 
  340.  
  341.      page 1 : disk cache information 
  342.      page 2 : I-node and open file information 
  343.      page 3 : ext2-os2.ifs standard output 
  344.  
  345.  
  346. ΓòÉΓòÉΓòÉ 4.5. Step 5 - Specifying command line parameters ΓòÉΓòÉΓòÉ
  347.  
  348. ext2-os2.ifs command line in CONFIG.SYS : 
  349.  
  350. IFS = <drive>:<path>\ext2-os2.ifs [-q]
  351.                                   [-cache:<max. disk cache size>]
  352.                                   [-rw]
  353.                                   [-no_auto_fsck]
  354.                                   [-case_retensive]
  355.                                   [-<IFS entry point to trace>]
  356.                                   [-no_strat2]
  357.                                   [-errors=[panic|continue]]
  358.                                   [-output=[com1|com2]]
  359.                                   [-tz:<time zone in minutes from UTC>]
  360.  
  361. NOTE : case is not significant (-q and -Q are equivalent), and '-' as well as 
  362. '/' can be used as a command line switch on the ext2-os2.ifs command line. 
  363.  
  364. ext2flt.flt command line in CONFIG.SYS : 
  365.  
  366. BASEDEV = EXT2FLT.FLT [/Q]
  367.                       [/V]
  368.                       [/W]
  369.                       [/A]
  370.                       [/M <mount list>]
  371.  
  372.  
  373. ΓòÉΓòÉΓòÉ 5. Usage instructions ΓòÉΓòÉΓòÉ
  374.  
  375. This chapter describes some imortant usage instructions. 
  376.  
  377.    1. Lazy writes considerations 
  378.    2. Automatic check disk 
  379.    3. Fatal ext2-os2 errors 
  380.    4. Case sensitivity considerations 
  381.    5. Note to "System Commander" Users 
  382.    6. Dynamic disk cache considerations 
  383.    7. Time zone considerations 
  384.  
  385.  
  386. ΓòÉΓòÉΓòÉ 5.1. Lazy writes considerations ΓòÉΓòÉΓòÉ
  387.  
  388. This release uses only lazy writes : it means that data are not committed to 
  389. the disk immediately. YOU *MUST ALWAYS* SHUTDOWN YOUR SYSTEM PROPERLY so that 
  390. data can be written to disk. IF YOU DON'T FOLLOW THIS RULE, YOUR EXT2FS 
  391. PARTITION WILL BE PROBABLY DAMAGED, AND YOUR DATA LOST. 
  392.  
  393. I included a sync.exe utility that flushes the cache to disk if you need to be 
  394. sure that data are committed without shutting down the system. 
  395.  
  396. If you use ex2fs formatted removable media (floppy, ...) data should be 
  397. commited to disk before the media is removed. You MUST run sync.exe BEFORE 
  398. removing the media from its drive. 
  399.  
  400. There is an automatic flush during system shutdown. At that time the removable 
  401. media (if you used one) MUST be present in the drive. 
  402.  
  403. Note:  You'll notice that the shutdown process is slightly longer : this is 
  404.        absolutely normal. 
  405.  
  406.  
  407. ΓòÉΓòÉΓòÉ 5.2. Automatic check disk ΓòÉΓòÉΓòÉ
  408.  
  409. When ext2-os2 mounts an ext2fs partition and when read writes are enabled, it 
  410. will set the mount count in the superblock to its maximum value in order to 
  411. force a disk check when Linux mounts the drive. 
  412.  
  413. This is a safety precaution to ensure that ext2-os2.ifs didn't corrupt the file 
  414. systems. I do NOT recommend to disable this automatic check ; I only included 
  415. the -no_auto_fsck switch for those who have very large drives. 
  416.  
  417.  
  418. ΓòÉΓòÉΓòÉ 5.3. Fatal ext2-os2 errors ΓòÉΓòÉΓòÉ
  419.  
  420. ext2-os2 fatal errors can appear in several forms : 
  421.  
  422.    1. A system halt with a register dump : this is a fatal exception trapped by 
  423.       the OS/2 kernel, due for example to a NULL pointer assignment. In this 
  424.       case the kernel debugger or a system dump is needed to track down the 
  425.       problem. 
  426.    2. A system halt with a message like ">>>>>>> EXT2-OS2 FATAL ERROR <<<<<<<". 
  427.       This is a system halt initiated by ext2-os2.ifs due to an unexpected 
  428.       error. Normally there should be a few lines with a cryptic message. 
  429.       Please write it down, as it will tell me where the error occured. 
  430.    3. The whole system is frozen : it is probably because an infinite loop was 
  431.       entered. Here also the kernel debugger is the only solution. 
  432.    4. One or more applications are frozen : it is probably a deadlock. 
  433.  
  434.  In either case, your ext2fs partition is in great danger ; To minimize the 
  435.  risk of data loss, please do the following : 
  436.  
  437.    1. In case of a system halt, write down the error message. 
  438.    2. In case of a system hang, try to press CTRL+ALT+DEL : this will commit 
  439.       dirty buffers to disk and thus minimise the damages on the partitions 
  440.       (ext2fs as well as FAT or HPFS). If it didn't work, the big red button is 
  441.       the only solution. 
  442.    3. Reboot Linux and run e2fsck ON ALL YOUR LINUX EXT2FS PARTITIONS to check 
  443.       and repair them if needed. DO NOT RESTART OS/2 WITH EXT2-OS2.IFS WITHOUT 
  444.       HAVING RUN E2FSCK ON  ALL YOUR PARTITIONS, THIS COULD SPREAD FILE SYSTEM 
  445.       ERRORS AND MAKE THINGS EVEN WORSE ! 
  446.    4. Please e-mail me the error, as well as a test case if possible, and 
  447.       please join your partition scheme (FDISK /QUERY from OS/2 or fdisk -l 
  448.       from Linux) and your CONFIG.SYS. 
  449.  
  450.  
  451. ΓòÉΓòÉΓòÉ 5.4. Case sensitivity considerations ΓòÉΓòÉΓòÉ
  452.  
  453. ext2fs is a case sensitive file system ; ext2-os2.ifs by default does case 
  454. sensitive comparisions, but even if OS/2 supports case sensitive file systems, 
  455. all the apps that uppercase or lowercase file names are broken. Some parts of 
  456. OS/2 are also broken : for instance the OS/2 program loader itself will 
  457. uppercase executable names, and so will fail loading programs or DLL if they 
  458. reside in a path with low case components. 
  459.  
  460. As a workaround, I introduced a command line switch (-case_retensive) to make 
  461. ext2-os2.ifs behave like HPFS : once set, it will ignore case when comparing 
  462. file names, but it will retain the case within the file system. It means that 
  463. FILE, File, FiLe and file will be treated as the same file if they reside in 
  464. the same directory ; but if you create FiLe, it will keep the case in the file 
  465. system. 
  466.  
  467. If you plan to run OS/2 programs from a Linux partition, this option is 
  468. necessary because the OS/2 program loader uppercase executable names. 
  469.  
  470. There's a dangerous drawback to this case retensive mode : if 2 files created 
  471. from Linux in the same directory exist with the same name but different case 
  472. (FILE and File for instance), and you run ext2-os2.ifs in case retensive mode, 
  473. RESULTS WILL BE UNPREDICTABLE AND YOU CAN TRASH ONE OR EVEN BOTH FILES ! In 
  474. fact only the first entry in the "." file of the parent directory will be used 
  475. by ext2-os2.ifs  ; This "first" entry is not necessarily the first entry 
  476. displayed by the 'DIR' command, nor is it the first one created. EXT2-OS2.IFS 
  477. DOES NOTHING TO SOLVE SUCH FILE NAME CONFLICT IN CASE RETENSIVE MODE. 
  478.  
  479. If you want to use this case retensive mode, please make sure from Linux that 
  480. there are never several files with the same name but different case in ANY 
  481. directory on ANY ext2fs partitions on your system BEFORE trying case retensive 
  482. mode. If there are some, then rename these files from Linux so that they have 
  483. have different names. 
  484.  
  485.  
  486. ΓòÉΓòÉΓòÉ 5.5. Note to "System Commander" Users ΓòÉΓòÉΓòÉ
  487.  
  488. Note that "System Commander" (from V-Communications) may make changes to the 
  489. partition table at boot time.  This may affect which partitions are visible, or 
  490. what drive letters are assigned by OS/2 when booting from System Commander.  In 
  491. particular, by default System Commander will make primary partitions on the 
  492. second hard drive invisible to OS/2.  If one of these other primary paritions 
  493. contains a Linux partition, it will not be visible to OS/2 or EXT2-FS, (even 
  494. though you are using the /V /A /M options with EXT2FLT.FLT).  To make a primary 
  495. partition on a second hard drive visible when booting OS/2 from System 
  496. Commander, do the following: 
  497.  
  498.    1. From the main System Commander screen, move to the OS/2 boot selection, 
  499.       and press Alt-S for the setup screen. 
  500.    2. Select "Local special options" from the setup screen. 
  501.    3. Select "YES" for the "Make primary partitions visible on drive 1". 
  502.    4. That's all 
  503.  
  504.  This has been reported by Steve Enns (ennss@eris.nhrc.sk.doe.ca) 
  505.  
  506.  
  507. ΓòÉΓòÉΓòÉ 5.6. Dynamic disk cache considerations ΓòÉΓòÉΓòÉ
  508.  
  509. ext2-os2.ifs now has a dynamic disk cache. The disk cache code is in fact a 
  510. port of the Linux disk cache, but with a few important differences. 
  511.  
  512. In Linux, the dynamic cache code is coupled to the virtual memory manager code, 
  513. so that all free physical memory can be used as cache : when there's some free 
  514. physical memory, the cache can grow, and when there's not enough free physical 
  515. memory, the virtual memory manager asks the disk cache to free some pages (this 
  516. can range from  "Could you please give me some free pages" ... to "I URGENTLY 
  517. need some memory so make whatever you can to free some pages"). On OS/2 I 
  518. couldn't make things work that way, simply because I can't hack the OS/2 kernel 
  519. code !! On OS/2, you MUST specify an upper limit for the amount of physical 
  520. memory the disk cache can allocate. When needed, ext2-os2.ifs will allocate 
  521. this memory as disk cache, but to simulate VMM calls to shrink the cache, a 
  522. daemon (ext2_lw.exe) periodically tries to shrink the cache. While it is not a 
  523. perfect solution, it seems to be a good compromise, at least if the max cache 
  524. size is reasonable (small enough so that it doesn't cause physical memory 
  525. starvation to the kernel). 
  526.  
  527. Some important points : 
  528.  
  529.      Disk cache memory is allocated/freed by chunks of 4 Kb (a page). 
  530.      The disk cache is allocaled in PHYSICAL MEMORY, it means that this memory 
  531.       CANNOT BE SWAPPED OUT to make room for other needs by the kernel (Having 
  532.       a swappable disk cache would be stupid IMHO !). It means that the maximun 
  533.       cache size passed to ext2-os2.ifs command line in CONFIG.SYS (-cache:xxx 
  534.       option) should be reasonable. 
  535.      You MUST ALWAYS HAVE EXT2_LW.EXE RUNNING, even in read only mode. If you 
  536.       kill it or if you suppress the starting of ext2_lw.exe in CONFIG.SYS, the 
  537.       disk cache size WILL NEVER SHRINK. 
  538.      You can monitor the disk cache size using ext2-os2.exe. 
  539.  
  540.  
  541. ΓòÉΓòÉΓòÉ 5.7. Time zone considerations ΓòÉΓòÉΓòÉ
  542.  
  543. ext2-os2 can now take your local time zone into account. File times should 
  544. match Linux file times (local time) instead of being relative to UTC . The time 
  545. zone can be set in CONFIG.SYS on the ext2-os2.ifs command line through the -tz 
  546. switch . It should be set to the  minute shift from UTC (-1440 to +1440). 0 
  547. means GMT, 60 means GMT+1, 120 means GMT+2, -60 means GMT-1 and so on. 
  548.  
  549. This option is rather experimental and can't be perfect because OS/2 does not 
  550. natively support time zones. Please tell me if you find it useful and if it 
  551. works correctly, otherwise simply remove the -tz switch and tell me the 
  552. problems you encountered. 
  553.  
  554. Note:  The OS/2 system time is not affected by this variable, so when you use 
  555.        -tz, you make ext2-os2.ifs consistent with Linux, but you introduce a 
  556.        shift between OS/2 system time, and file times. In some cases this can 
  557.        be a problem. Please tell me if you encountered some problems due to 
  558.        this (makefiles ?). 
  559.  
  560.  
  561. ΓòÉΓòÉΓòÉ 6. Features, limitations and known bugs for this release. ΓòÉΓòÉΓòÉ
  562.  
  563.    1. Features and limitations 
  564.    2. Known bugs 
  565.  
  566.  
  567. ΓòÉΓòÉΓòÉ 6.1. Features and limitations ΓòÉΓòÉΓòÉ
  568.  
  569.      I only tested it on Warp, but it should work on OS/2 2.x and above. It 
  570.       will *NOT* work on OS/2 1.x. 
  571.      I used the Linux 1.2.1 kernel sources, corresponding to ext2fs 0.5b. It 
  572.       should work even with ext2fs from latest linux kernels (1.3.97). 
  573.      Dynamic disk cache size (limited by the physical memory available), 
  574.       ported from Linux. 
  575.      Global I-node cache, identical to Linux one. 
  576.      Global directory entry cache, identical to Linux one. 
  577.      Uses almost only original Linux ext2fs routines. 
  578.      Works well only for a block size of 1 KB (it should work with other block 
  579.       sizes, but it has been minimally tested) 
  580.      Doesn't support fragments (neither do the original Linux ext2fs 0.5b 
  581.       code) 
  582.      Linux special files (fifo, symbolic links, sockets, block and character 
  583.       devices) are mapped as SYSTEM files : you can see them with DIR /A but 
  584.       you normally can't read them 
  585.      OS/2 mounts ext2fs partitions as root : it means that from OS/2 you have 
  586.       full unrestricted access to your Linux partitions. 
  587.      Unlike Linux, file names beginning with '.' are not hidden 
  588.      Hard links are properly handled 
  589.      Symbolic links are not followed (treated as SYSTEM regular files) 
  590.      Each ext2 partition has its own drive letter (provided you made them 
  591.       visible from OS/2) 
  592.      OS/2 extended attributes are not supported, because Linux ext2fs does not 
  593.       support them for the moment. 
  594.      Swapping on a Linux ext2fs partition is supported : it means you can put 
  595.       SWAPPER.DAT on a Linux partition. 
  596.      (*note* only in the 16 bits version for the moment) Booting OS/2 from a 
  597.       Linux ext2fs partition is now supported, but you must still have a FAT or 
  598.       HPFS partition to store the OS/2 swap file and the desktop tree. 
  599.      Some OS/2 API are not or partially supported, for instance : 
  600.         1. DosSetFSInfo  : level 2 is ignored because an ext2fs file system 
  601.            does not define a volume label nor a volume serial number. 
  602.         2. DosSetFileInfo : level 2 (used to store/change EAS) is ignored 
  603.            because EAS are not supported by ext2fs. 
  604.         3. DosSetFileInfo : level 2 (used to store/change EAS) is ignored 
  605.            because EAS are not supported by ext2fs. 
  606.         4. DosSetVerify : completely ignored on ext2fs partitions ! 
  607.      ext2fs specific behaviour of some OS/2 API : 
  608.         1. DosQueryFSInfo with FSIL_ALLOC (level 1) information returns the 
  609.            free space minus the reserved space. This should be consistent with 
  610.            Minix style df output (no fs overhead taken into account). 
  611.         2. DosQueryFSInfo with FSIL_VOLSER (level 2) information returns 
  612.            EXT2FS_<drive> as volume label and a 32 bits CRC checksum of sector 
  613.            0 as volume serial number. 
  614.      A file is considered read only if neither UNIX user, group and other 
  615.       'write' bits are set. 
  616.      When a file is set read-write, the UNIX user 'write' bit is set. 
  617.      When the block device driver supports it, strategy 2 I/O are used on non 
  618.       removable media. They provide the following advantages : 
  619.         -  Uses asynchronous I/O request lists. 
  620.         -  Priorities can be assigned to I/O. 
  621.         -  Multiple non contiguous I/O requests can be sent to the device 
  622.            driver in one shot, this permits the the IFS and the device driver 
  623.            to sort requests for better performance. OS2DASD.DMD, the standard 
  624.       fixed disk block device driver does support strategy 2 requests. 
  625.  
  626.  
  627. ΓòÉΓòÉΓòÉ 6.2. Known bugs ΓòÉΓòÉΓòÉ
  628.  
  629. There are always too many of them. This list is not complete but I'll try to 
  630. keep it as much complete as possible and shrink it as fast as I can, if you 
  631. give me your feedback... 
  632.  
  633.      The mount process will mount the ext2fs partition even if it has not been 
  634.       unmounted cleanly  : I STRONLY SUGGEST YOU TO UNMOUNT YOUR FILE SYSTEMS 
  635.       CLEANLY FROM LINUX - RUNNING THIS DRIVER ON A CORRUPTED EXT2FS PARTITION 
  636.       IS LIKELY TO CRASH YOU SYSTEM. 
  637.      Removable media support has been only minimally tested. You *MUST* run 
  638.       sync.exe *BEFORE* removing a ext2fs formatted drive 
  639.      DosFindNext() called from a 32 bits app (aka DosFindFromName) doesn't 
  640.       restart from the specified name, but from the last directory entry found. 
  641.      As ext2fs doesn't support EAS, there are many cosmetic bugs with the 
  642.       workplace shell (some icons stay hatched....) 
  643.      Error codes returned from the IFS to OS/2 are sometimes not translated 
  644.       from Linux to OS/2. This will result in messages like "Cannot find 
  645.       message 56347" instead of "Directory not empty" for instance. 
  646.  
  647.  
  648. ΓòÉΓòÉΓòÉ 7. History of changes ΓòÉΓòÉΓòÉ
  649.  
  650. This chapter describes the changes between each release of ext2-os2 
  651.  
  652.    1. From 0.1 to 0.2 
  653.    2. From 0.2 to 0.3 
  654.    3. From 0.3 to 0.4 
  655.    4. From 0.4 to 0.5 
  656.    5. From 0.5 to 0.6 
  657.    6. From 0.6 to 0.7 
  658.    7. From 0.7 to 0.8 
  659.    8. From 0.8 to 0.9 
  660.    9. From 0.9 to 2.0 
  661.  
  662.  
  663. ΓòÉΓòÉΓòÉ 7.1. From 0.1 to 0.2 ΓòÉΓòÉΓòÉ
  664.  
  665.      DOS sessions can now access ext2fs partitions. WinOS2 sessions can also, 
  666.       but they crash randomly and I couldn't figure out why yet ! 
  667.      The per volume disk cache size is now user configurable from 64 Kb to 60 
  668.       * 64 Kb. However it is not evident that a huge disk cache will improve 
  669.       performance significantly : the cache lookup algorithm is still primitive 
  670.       (single LRU list). 
  671.      Sources are now included 
  672.      FS_FINDFIRST, FS_FINDNEXT and FS_FINDFROMNAME now use the same lookup 
  673.       routine 
  674.      The directory entry cache is now implemented (identical to the Linux one) 
  675.      readdir() now uses the original ext2_readdir() routine instead of a quick 
  676.       (and somewhat dirty) rewrite 
  677.      FS_FSINFO now returns a 'true' volume serial number instead of garbage. 
  678.       This volume serial number is a CRC checksum of sector 0. 
  679.      FS_MOUNT now checks for a previous instance of the volume to be mounted, 
  680.       instead of remounting blindly a previously mounted volume. 
  681.      FS_MOUNT with MOUNT_RELEASE flag now closes the volume and frees memory 
  682.      brelse() no longer produces a system halt (trap D) when receiving a NULL 
  683.       buffer : it now ignores it like its Linux counterpart 
  684.      Direct access opens (OPEN_FLAGS_DASD) are now supported in both read only 
  685.       and readwrite modes 
  686.      Write capabilities added : 
  687.         -  FS_MKDIR and FS_RMDIR implemented 
  688.         -  FS_SHUTDOWN implemented 
  689.         -  FS_OPENCREATE in writeonly and readwrite mode implemented 
  690.         -  FS_WRITE implemented 
  691.         -  FS_DELETE implemented 
  692.      FS_CLOSE now calls ext2_release_file() when the last instance of a file 
  693.       is closed 
  694.      "-cache:<disk cache size>" Command line parameters added to set the per 
  695.       volume disk cache size 
  696.      "-q" command line parameter added (quiet initialisation) 
  697.      "-rw" command line parameter added (write access allowed) 
  698.      The memory I-node management routines (iput() iget() ...) are now a port 
  699.       of their Linux counterparts instead of a rewrite. 
  700.      Linux scheduling and semaphore management routines (sleep_on(), wake_up() 
  701.       down() up() ...) have been rewritten using ProcBlock/ProcRun device 
  702.       helpers instead of FSH_SEMxxx : now their behaviour should be identical 
  703.       to their Linux counterparts. 
  704.      The mount process is now almost identical as in ext2fs. 
  705.      When OS/2 mounts a ext2fs partition, it sets the mount count to the 
  706.       maximum to force Linux to autocheck ext2fs partitions "touched" by OS/2. 
  707.      Buffer head structures now *NEVER* reach segment boundaries : this avoids 
  708.       TREMENDOUS problems with some ext2fs routines (ext2_add_entry() ...) 
  709.       which do some pointer arithmetics which simply don't work in a 16:16 
  710.       memory model. 
  711.  
  712.  
  713. ΓòÉΓòÉΓòÉ 7.2. From 0.2 to 0.3 ΓòÉΓòÉΓòÉ
  714.  
  715.      There is now a translation from Linux error codes (those in 
  716.       linux/errno.h) to OS/2 error codes (bseerr.h). Now for instance, cmd.exe 
  717.       says "Directory not empty" instead of "Cannot find message 65503". This 
  718.       translation currently occurs in FS_READ, FS_WRITE, FS_RMDIR , FS_DELETE, 
  719.       FS_MOVE and FS_MKDIR. 
  720.      FS_COPY() is now supported (in fact emulated by the OS/2 kernel). It was 
  721.       just a matter of returning ERROR_CANNOT_COPY from FS_COPY() - this makes 
  722.       the kernel emulate the copy operation - instead of ERROR_NOT_SUPPORTED. 
  723.       This applies only to copy operations inside or between ext2fs partitions. 
  724.      Some cleanup in the code, by removing much direct ext2fs call and 
  725.       replacing them by Linux VFS style calls (inode->i_op->read() for instance 
  726.       instead of ext2_file_read()). This would ease te work of people trying to 
  727.       port other Linux file systems to OS/2. 
  728.      FS_MOVE is now implemented. 
  729.      Corrected a bug in FS_DevHelp_ProcBlock : register di was not preserved 
  730.       across the call, causing some random trap D. 
  731.      Corrected a bug in read_inode when in DASD mode (OPEN_FLAGS_DASD) : some 
  732.       I-node fields are now properly initialized ; This was preventing FS_READ 
  733.       to work on a direct access handle (inode->i_mode was 0 and FS_READ 
  734.       reported "not a regular file"). 
  735.      Suppressed strict locking of buffers : now buffers can be used more than 
  736.       once, conforming to Linux buffers (no more mutex in getblk and brelse), 
  737.       some ext2fs routines do rely on it (ext2_rename)  ... ext2-os2 on OS/2 
  738.       for SMP is not for tomorrow !! 
  739.      Added -no_auto_fsck command line switch to disable the forced e2fsck when 
  740.       Linux mounts a partition "touched" by OS/2. 
  741.      Added code to close remaining open files at shutdown. Normally they 
  742.       shouldn't be any, but the WPS lets some pending search handles 
  743.       (DosFindxxx) ; this could result in file system corruption (a search 
  744.       handle on a directory later deleted for instance : the deletion is not 
  745.       committed until all references to the directory are closed). 
  746.      Synchronous files (OPEN_FLAGS_WRITE_THROUGH and OPEN_FLAGS_NO_CACHE) 
  747.       should be now handled correctly. 
  748.  
  749.  
  750. ΓòÉΓòÉΓòÉ 7.3. From 0.3 to 0.4 ΓòÉΓòÉΓòÉ
  751.  
  752.      Corrected a bug in FS_MOUNT that caused a system halt (trap D) when 
  753.       loading the WinOS2 file manager and ext2-os2 not being the last IFS 
  754.       statement in CONFIG.SYS 
  755.      Corrected a bug in FS_CLOSE that caused some random file system 
  756.       corruption : ext2_release_file() was not correctly called. 
  757.      Now FS_OPENCREATE opens only regular files, as it seems to be the default 
  758.       OS/2 behaviour. (FS_OPENCREATE no longer opens directories). 
  759.      Added the -trace option to ext2-os2.exe : ext2d.exe is no longer 
  760.       necessary. 
  761.      Now ext2-os2.exe correctly ends conversation with the IFS when being 
  762.       closed. 
  763.      ext2flt has been upgraded from V1.2 to V1.2b 
  764.      During shutdown the flush mechanism could be disturbed if other activity 
  765.       (lw daemon ...) was taking place (resulting in potential file and/or file 
  766.       system corruption). This has been corrected. 
  767.      The famous random trap D at CS:EIP=<any cs>:142e occuring at boot time 
  768.       should now be corrected ... It was in fact a trap occuring inside the 
  769.       Microsoft Visual C++ runtime library, only under retail OS/2 kernel (no 
  770.       trap at all under kernel debugger !). After having taken 5 or 6 system 
  771.       dumps I realized it was because somewhere an INT 21h call was issued 
  772.       inside the vsprintf() routine. I changed vsprintf() for the Linux kernel 
  773.       one. 
  774.  
  775.  
  776. ΓòÉΓòÉΓòÉ 7.4. From 0.4 to 0.5 ΓòÉΓòÉΓòÉ
  777.  
  778.      Added support for strategy 2 I/O for non removable medias (for block 
  779.       devices that support it !). This results in huge perfomance improvements 
  780.       : throughput can be 5 times better than with standard I/O in some 
  781.       circumstances (large file read/write). 
  782.      Improved and corrected many bugs concerning time stamping of regular 
  783.       files (last access date/time and last write date/time should now reflect 
  784.       the reality !) - Time stamping of directories is yet to be improved. 
  785.      Corrected a bug in ll_rw_block() that could cause some file/file system 
  786.       corruption in rare circumstances. 
  787.      Some cleanup in the source code : removed some inline assembly, improved 
  788.       init routines .... 
  789.      Added support for the standard DosFsCtl function 1 call (get extended 
  790.       error info). 
  791.      Added a first version of the VFSAPI library : it currently implements the 
  792.       stat(), fstat() and sync() calls. 
  793.      DosResetBuffer is now supported (FS_COMMIT entry point). 
  794.      Disk cache management has been completely rewritten : the disk cache code 
  795.       is now a port of the Linux buffer management code (dynamic disk cache 
  796.       size) 
  797.      ext2-os2.exe is now a PM application, and can now monitor some data from 
  798.       ext2-os2.ifs. 
  799.      Changed many FSH_PROBEBUF into VMLock/VMUnlock pairs so that user buffers 
  800.       passed to the IFS can't be freed by other threads. 
  801.      Added -case_retensive command line option to make ext2-os2.ifs behave 
  802.       like HPFS (case is not significant but kept within the file system, for 
  803.       instance File and FILE are considered to be the same file). This fixes 
  804.       MANY apps which uppercase file names, but there's a risk of loosing data 
  805.       if 2 files with the same case exists in the same directory (see usage 
  806.       information for details). 
  807.      Added command line switches to trace some IFS entry points (for instance 
  808.       -FS_MKDIR will trace FS_MKDIR calls). This makes the debug version of 
  809.       ext2-os2.ifs (ext2d.ifs) no longer necessary. 
  810.      Deon van der Westhuysen's ext2flt.flt has been updated to version 1.2c in 
  811.       this package. I recompiled ext2flt.flt with MS Visual C++ simply because 
  812.       I don't have borland C++, and I needed to temporarily include some 
  813.       debugging code to solve problems with strategy 2 I/Os (in fact the 
  814.       problems were in OS2DASD.DMD !). Normally this "MS Visual C++" version 
  815.       should behave absolutely like the original Borland compiled version. But 
  816.       in case you prefer using the original version, you can find it on 
  817.       ftp-os2.nmsu.edu (/os2/diskutil/e2flt12c.zip) or on quark.cs.sun.ac.za 
  818.       (/pub/ext2flt/e2flt12c.zip). See the file ext2flt/makefile.msc for 
  819.       details. 
  820.      File systems greater than 2 Gb should now be mounted correctly. 
  821.      Many other changes ! 
  822.  
  823.  
  824. ΓòÉΓòÉΓòÉ 7.5. From 0.5 to 0.6 ΓòÉΓòÉΓòÉ
  825.  
  826.      Corrected a bug in FS_NEWSIZE : the I-node wasn't marked dirty after the 
  827.       size change. This resulted in random truncation failures. 
  828.      Corrected a bug in FS_OPENCREATE : When creating a new file or replacing 
  829.       an existing one (OPEN_ACTION_REPLACE_IF_EXISTS or 
  830.       OPEN_ACTION_CREATE_IF_NEW) the new file size passed to the IFS was 
  831.       ignored, this resulted in truncation failures. 
  832.      DosSetFileInfo is now supported for level 1 : it will change the file 
  833.       dates. Level 2 (used to store or change EAS) is ignored because ext2fs 
  834.       doesn't support EAS. 
  835.      DosSetPathInfo is now supported for level 1 : it will change the file 
  836.       dates. Level 2 (used to store or change EAS) is ignored because ext2fs 
  837.       doesn't support EAS. 
  838.      Corrected a *STUPID* bug that caused a system halt at boot time with 
  839.       message "EXT2-os2 : buffer_init() - Couldn't allocate disk block hash 
  840.       table" when the max. cache size was not set on the IFS command line. If 
  841.       not set, the cache size remained uninitialized (0) instead of getting its 
  842.       default value...hence the system halt when trying to allocate a 0 length 
  843.       buffer. 
  844.      Corrected a bug in date_dos2unix ; it made FS_CLOSE write incorrect file 
  845.       times to disk (file dates were OK). 
  846.      The time zone is now taken into account by ext2-os2.ifs. This makes 
  847.       ext2-os2.ifs reflects file time stamps in local time instead of UTC 
  848.       (ext2-os2.ifs and linux times should now match). The time zone is set in 
  849.       CONFIG.SYS through the EXT2_TZ environment variable (minutes from UTC). 
  850.      Trace for the following entry points has been added : 
  851.         -  FS_PATHINFO 
  852.         -  FS_FILEATTRIBUTE 
  853.         -  FS_FILEINFO 
  854.         -  FS_PROCESSNAME 
  855.      Optimized a little bit the use of iget/iput in FS_DELETE and 
  856.       FS_OPENCREATE. 
  857.      Corrected some bugs related to time stamping. ext2-os2.ifs no longer let 
  858.       the kernel do the time stamping, but does it itself. For instance when 
  859.       copying a file on an ext2fs file system, the file creation date should 
  860.       now be the one from the original file. 
  861.      ext2-os2.exe now traces the use of iput and iget routines. 
  862.      changed the panic code. 
  863.      addded the -errors=[panic|cont] command line parameter 
  864.      Setting or clearing the DOS READONLY attribute is now supported 
  865.       (FS_FILEATTRIBUTE, FS_FILEINFO and FS_PATHINFO). 
  866.  
  867.  
  868. ΓòÉΓòÉΓòÉ 7.6. From 0.6 to 0.7 ΓòÉΓòÉΓòÉ
  869.  
  870.      changed the EXT2_TZ valid range from [-720;720] to [-1440;1440] so that 
  871.       every countries can be supported (New Zeland has a 13 hour shift from UTC 
  872.       ...) 
  873.      corrected a major bug in sys_bdflush that made the system hang when 
  874.       ext2_lw.exe was loaded before any Linux partitions are mounted. 
  875.      corrected a time stamp problem in FS_COMMIT. 
  876.  
  877.  
  878. ΓòÉΓòÉΓòÉ 7.7. From 0.7 to 0.8 ΓòÉΓòÉΓòÉ
  879.  
  880.      corrected a bug that prevented negative values to be specified for the 
  881.       EXT2_TZ environment variable. 
  882.      corrected a bug in FS_OPENCREATE that caused a truncation failure when 
  883.       OPEN_ACTION_REPLACE_IF_EXISTS was set and a non zero file size was 
  884.       passed. 
  885.      corrected a problem in bdflush() that made IOSTONE giving ridiculously 
  886.       small results. After that IOSTONE results on my antic IDE disk jumped 
  887.       from 80 (no it's not a typo!) to 2500. 
  888.      changed a compiler option : now only externally called routines load DS 
  889.       on entry. This allows better optimization. 
  890.      now DGROUP is compeletely fixed in memory (instead of only 
  891.       EXT2_FIXED_DATA), because I discovered that the compiler sometimes makes 
  892.       references to some internal data in CONST segment (it seems to create 
  893.       selector aliases for optimization I think). This could cause a trap E in 
  894.       routines called in interrupt context if CONST was swapped out. I 
  895.       simplified DevHelp bindings in devhelp2.asm accordingly. 
  896.      added debug output to COM ports (COM1 or COM2). 
  897.      added boot capability to ext2-os2 (wrote a micro FSD and a mini FSD). 
  898.  
  899.  
  900. ΓòÉΓòÉΓòÉ 7.8. From 0.8 to 0.9 ΓòÉΓòÉΓòÉ
  901.  
  902.      corrected a bug in the file table management code. I incorrectly assumed 
  903.       that FSH_SEGALLOC returned zeroed memory and this could cause a system 
  904.       halt in put_last_in_list saying the used list was corrupted. 
  905.      corrected a race condition problem in the file table management code. 
  906.  
  907.  
  908. ΓòÉΓòÉΓòÉ 7.9. From 0.9 to 2.0 ΓòÉΓòÉΓòÉ
  909.  
  910.      Corrected yet another  bug in FS_NEWSIZE 
  911.      Corrected (I hope) a bug that could make ext2-os2 crash when 
  912.       HPOFS.IFS/MO.SYS are present. 
  913.      Implemented swapper entry points : now SWAPPER.DAT can be put on a Linux 
  914.       ext2fs partition. 
  915.      Rewrote the mount/unmount/shutdown mechanism (including superblock 
  916.       allocation). 
  917.      Ported the whole ext2-os2.ifs to 32 bits. (this introduced many small 
  918.       changes). 
  919.  
  920.  
  921. ΓòÉΓòÉΓòÉ 8. How to build ext2-os2.ifs ΓòÉΓòÉΓòÉ
  922.  
  923. This chapter describes how to build the IFS. 
  924.  
  925.    1. Tools needed 
  926.    2. The build tree - How to build 
  927.  
  928.  
  929. ΓòÉΓòÉΓòÉ 8.1. Tools needed ΓòÉΓòÉΓòÉ
  930.  
  931. Table or required compiler, assembler and linker : 
  932.  
  933. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  934. Γöé                    Γöé32 bits C Γöé16 bits C Γöé80x86     ΓöéLinker    Γöé
  935. Γöé                    Γöécompiler  Γöécompiler  Γöéassembler Γöé          Γöé
  936. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  937. Γöéext2-os2.ifs        Γöé(1)       Γöé(none)    Γöé(2)       Γöé(7)       Γöé
  938. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  939. Γöémwdd32.sys          Γöé(1)       Γöé(none)    Γöé(2)       Γöé(7)       Γöé
  940. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  941. Γöéext2flt.flt         Γöé(none)    Γöé(3) or (4)Γöé(5) or (6)Γöé(8) or (9)Γöé
  942. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  943. Γöévfsapi.dll          Γöé(1)       Γöé(none)    Γöé(none)    Γöé(7)       Γöé
  944. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  945. Γöéext2-os2.exe        Γöé(1)       Γöé(none)    Γöé(none)    Γöé(7)       Γöé
  946. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  947. Γöéext2_lw.exe         Γöé(1)       Γöé(none)    Γöé(none)    Γöé(7)       Γöé
  948. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  949. Γöésync.exe            Γöé(1)       Γöé(none)    Γöé(none)    Γöé(7)       Γöé
  950. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  951. Γöéuext2.dll           Γöé(1)       Γöé(none)    Γöé(none)    Γöé(7)       Γöé
  952. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  953.  
  954. List of required toolkits : 
  955.  
  956.      The IBM OS/2 WARP developer's toolkit (included in IBM Visualage C++ 
  957.       package) 
  958.      The IBM OS/2 Developer Connection Device Driver Kit version 2 or later 
  959.      The IBM 'IFS toolkit'. I don't know the exact status of this package ; it 
  960.       seems to be publically available (I've seen it on Hobbes - a file named 
  961.       ifsinf.zip). If it's not publically available, ask your local IBM rep for 
  962.       a copy. 
  963.  
  964.  
  965. ΓòÉΓòÉΓòÉ 8.2. The build tree - How to build ΓòÉΓòÉΓòÉ
  966.  
  967.    1. make a directory somewhere on your disk. 
  968.    2. in that directory, unzip the file ext2_src.zip 
  969.    3. in that directory, unzip the file mwdd_src.zip (included in 32drv130.zip 
  970.       included in this package). 
  971.    4. update the file <your directory>\32bits\ext2-os2\makefile.inc, according 
  972.       to the table below. 
  973.    5. open a DOS session, and in that session : 
  974.           change the current directory to <your 
  975.            directory>\32bits\ext2-os2\ext2flt 
  976.           type 'nmake -f makefile.msc' to build ext2flt.flt. 
  977.    6. exit from the DOS session 
  978.    7. change the current directory to <your directory>\32bits\ext2-os2 
  979.    8. type "nmake" to build the whole ext2-os2 package 
  980.  
  981.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  982.   ΓöéEXT2OS2_BASE      ΓöéThe root path of ext2-os2 (usually \ext2-os2)Γöé
  983.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  984.   ΓöéDDKPATH           ΓöéThe path where is installed your DDK (usuallyΓöé
  985.   Γöé                  Γöé\DDKX86 or \DDK)                             Γöé
  986.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  987.   ΓöéIFSTKTPATH        ΓöéThe path where you put the "IFS toolkit"     Γöé
  988.   Γöé                  Γöé(fsd.h, fsh.h and fshelper.lib)              Γöé
  989.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  990.   ΓöéMSVCPATH          ΓöéThe path where MS Visual C++ is installed    Γöé
  991.   Γöé                  Γöé(usually \MSVC)                              Γöé
  992.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  993.   ΓöéVACPATH           ΓöéThe path where IBM Visualage C++ is installedΓöé
  994.   Γöé                  Γöé(usually \IBMCPP)                            Γöé
  995.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  996.  
  997.  The build tree looks like : 
  998.  
  999.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1000.   Γöé.\                  Γöécontains the main makefile an the files I    Γöé
  1001.   Γöé                    Γöécouldn't put elsewhere.                      Γöé
  1002.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1003.   Γöé.\vfs               ΓöéLinux kernel services and VFS interfaces.    Γöé
  1004.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1005.   Γöé.\ext2              ΓöéLinux ext2fs sources (from                   Γöé
  1006.   Γöé                    Γöé/usr/src/linux-1.2.1/fs/ext2)                Γöé
  1007.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1008.   Γöé.\include\os2       ΓöéOS/2 specific include files                  Γöé
  1009.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1010.   Γöé.\include\linux     ΓöéLinux include files                          Γöé
  1011.   Γöé                    Γöé(/usr/src/linux-1.2.1/include/linux)         Γöé
  1012.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1013.   Γöé.\include\asm       ΓöéLinux include files                          Γöé
  1014.   Γöé                    Γöé(/usr/src/linux-1.2.1/include/asm)           Γöé
  1015.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1016.   Γöé.\console           Γöéext2-os2.exe monitoring tool sources         Γöé
  1017.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1018.   Γöé.\doc               ΓöéThe ext2-os2 documentation                   Γöé
  1019.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1020.   Γöé.\distrib           ΓöéThe directory in which is built the ZIP file.Γöé
  1021.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1022.   Γöé.\vfsapi            ΓöéThe VFSAPI library sources.                  Γöé
  1023.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1024.   Γöé.\ext2flt           Γöécontains Deon van der Westhuysen's           Γöé
  1025.   Γöé                    Γöéext2flt.flt sources, patched to compile with Γöé
  1026.   Γöé                    ΓöéMS Visual C++ as well as Borland C++.        Γöé
  1027.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1028.   Γöé.\microfsd          ΓöéThe ext2-os2 micro FSD (used to boot OS/2    Γöé
  1029.   Γöé                    Γöéfrom a Linux partition)                      Γöé
  1030.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1031.   Γöé.\minifsd           ΓöéThe ext2-os2 mini FSD (used to boot OS/2 fromΓöé
  1032.   Γöé                    Γöéa Linux partition)                           Γöé
  1033.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1034.   Γöé.\uext2             ΓöéThe dummy uext2.dll library sources          Γöé
  1035.   Γöé                    Γöé(necessary to make BOOTOS2 happy)            Γöé
  1036.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1037.  
  1038.  
  1039. ΓòÉΓòÉΓòÉ 9. The VFSAPI library ΓòÉΓòÉΓòÉ
  1040.  
  1041. The purpose of the VFSAPI library is to provide an extension of the standard 
  1042. OS/2 standard file system oriented calls to access Linux VFS specific features 
  1043. like I-nodes, UNIX file modes, file ownership and so on. For the moment the 
  1044. library is quite limited, but with the time I'll include some more calls ! 
  1045.  
  1046. To be able to do what they are designed for, these routines talk directly to 
  1047. the ext2-os2.ifs file system driver, through the DosFsCtl call. DosFsCtl 
  1048. (almost) directly calls the IFS's FS_FSCTL entry point. Most of the work is 
  1049. done in kernel mode inside ext2-os2.ifs. DosFsCtl is the IFS equivalent of 
  1050. DosDevIOCtl : an extended interface to the IFS. 
  1051.  
  1052. The library is compiled using IBM Visualage C++ 3.0, but it should also compile 
  1053. without problem with emx/gcc. The precompiled vfsapi.dll should work with 
  1054. emx/gcc (and other compilers) without recompilation. 
  1055.  
  1056. The entry points follow the standard OS/2 32 bits API linkage convention 
  1057. (_System for IBM Visualage C++, _syscall for Borland C++). 
  1058.  
  1059. Note:  The funtion names, as well as data structure names, have been prefixed 
  1060.        with "vfs_" in order to prevent name collisions with existing C/C++ 
  1061.        runtime libraries. 
  1062.  
  1063.      vfs_fstat 
  1064.      vfs_stat 
  1065.      vfs_sync 
  1066.  
  1067.  
  1068. ΓòÉΓòÉΓòÉ 9.1. vfs_fstat ΓòÉΓòÉΓòÉ
  1069.  
  1070. int vfs_fstat(int fd, struct new_stat *s);
  1071.  
  1072. This is the ext2-os2 implementation of the Unix fstat() system call. It returns 
  1073. a "true" stat structure containing the "true" Unix file mode, the "true" file 
  1074. ownership... This stat structure is the same as the Linux stat structure 
  1075. defined in /usr/include/sys/stat.h. All the macros and definitions for file 
  1076. modes and file ownership are also the same as in Linux. 
  1077.  
  1078. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1079. ΓöéParameter type      ΓöéInput     ΓöéDescription                                  Γöé
  1080. Γöé                    ΓöéOutput    Γöé                                             Γöé
  1081. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1082. Γöéint fd              Γöéinput     Γöémust be a valid OS/2 file handle (for exampleΓöé
  1083. Γöé                    Γöé          Γöéreturned by DosOpen, or DosDupHandle).       Γöé
  1084. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1085. Γöéstruct vfs_stat *s  Γöéin/out    ΓöéOn input : must point to a vfs_stat          Γöé
  1086. Γöé                    Γöé          Γöéstructure. On output : contains the I-node   Γöé
  1087. Γöé                    Γöé          Γöéinformation.                                 Γöé
  1088. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1089.  
  1090.  
  1091. ΓòÉΓòÉΓòÉ 9.2. vfs_stat ΓòÉΓòÉΓòÉ
  1092.  
  1093. int vfs_stat(const char *pathname, struct new_stat *s);
  1094.  
  1095. This is the ext2-os2 implementation of the Unix stat() system call. It returns 
  1096. a "true" stat structure containing the "true" Unix file mode, the "true" file 
  1097. ownership... This stat structure is the same as the Linux stat structure 
  1098. defined in /usr/include/sys/stat.h. All the macros and definitions for file 
  1099. modes and file ownership are also the same as in Linux. 
  1100.  
  1101. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1102. ΓöéParameter type      ΓöéInput     ΓöéDescription                                  Γöé
  1103. Γöé                    ΓöéOutput    Γöé                                             Γöé
  1104. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1105. Γöéconst char *pathnameΓöéinput     ΓöéMust be a valid OS/2 file name (a file name  Γöé
  1106. Γöé                    Γöé          Γöéacceptable by DosOpen).                      Γöé
  1107. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1108. Γöéstruct vfs_stat *s  Γöéin/out    ΓöéOn input : must point to a vfs_stat          Γöé
  1109. Γöé                    Γöé          Γöéstructure. On output : contains the I-node   Γöé
  1110. Γöé                    Γöé          Γöéinformation.                                 Γöé
  1111. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1112.  
  1113.  
  1114. ΓòÉΓòÉΓòÉ 9.3. vfs_sync ΓòÉΓòÉΓòÉ
  1115.  
  1116. int vfs_sync(void);
  1117.  
  1118. This is the ext2-os2 implementation of the Unix sync() system call. It commits 
  1119. all data to the disk. 
  1120.  
  1121. Note:  vfs_sync will ONLY work on ext2fs partitions, not on other partitions 
  1122.        (FAT, HPFS). 
  1123.  
  1124.  
  1125. ΓòÉΓòÉΓòÉ 10. Booting OS/2 from a Linux ext2fs partition ΓòÉΓòÉΓòÉ
  1126.  
  1127. Note:  This chapter does not yet apply to the 32 bits version. To boot OS/2 
  1128.        from a Linux partition you must use the 16 bits version of ext2-os2. 
  1129.  
  1130.  Now ext2-os2 allows OS/2 to boot from a Linux ext2fs partition. It can even 
  1131.  makes OS/2 reside alongside Linux on the same partition (I mean, having 
  1132.  vmlinuz and OS2KRNL on the same file system !). 
  1133.  
  1134.  Note:  For the moment there are two main restrictions (these restrictions will 
  1135.         be removed when I implement swapper entry points, and EAS support .... 
  1136.         ) : 
  1137.  
  1138.    1. You must still have a FAT or HPFS partition to store the swap file 
  1139.    2. You must still have a FAT or HPFS partitionto store the WPS desktop tree 
  1140.       (usually <boot drive>:\DESKTOP\*). 
  1141.  
  1142.  Anyway, it is not completely useless though : with this feature you can for 
  1143.  instance install an OS/2 maintenance partition on a Linux ext2fs drive, and 
  1144.  thus save a partition. You can also install a full OS/2 system, if you store 
  1145.  the desktop and the swap file on a FAT or HPFS partition. 
  1146.  
  1147.  The following chapters will describe how to setup an OS/2 system on a Linux 
  1148.  ext2fs partition. It's not an easy thing to do, because as you will see it's 
  1149.  like if we gathered on a single partition the usual problems encountered when 
  1150.  installing a Linux+OS/2 system !! 
  1151.  
  1152.  For the moment booting OS/2 from a Linux partition is still quite experimental 
  1153.  and is still at beta level stabiliy ! To try this feature, you'll have to be 
  1154.  very familiar with OS/2 installation, Linux installation, and LILO + OS/2 Boot 
  1155.  Manager configuration. Please make a full backup of your system first ! 
  1156.  
  1157.  I'm waiting for your feedback on this new feature, both failures and success 
  1158.  stories ! 
  1159.  
  1160.    1. Understanding the normal OS/2 HPFS boot sequence 
  1161.    2. Understanding the normal Linux ext2fs boot sequence 
  1162.    3. Understanding the ext2-os2 OS/2 ext2fs boot sequence 
  1163.    4. Installing and configuring OS/2 on a Linux ext2fs partition 
  1164.  
  1165.  
  1166. ΓòÉΓòÉΓòÉ 10.1. Understanding the normal OS/2 HPFS boot sequence ΓòÉΓòÉΓòÉ
  1167.  
  1168.  Assume you have an OS/2 system with Boot Manager installed. Here's a 
  1169. simplified HPFS boot sequence : 
  1170.  
  1171.    1. Ctrl+Alt+Del or Power on gives control to the power-on-self-test (POST) 
  1172.       code. the POST code after hardware initializations issues an INT 19h. 
  1173.    2. INT 19h load the first sector of the first drive (the MBR), and executes 
  1174.       it. This code will load and execute the boot record of the active primary 
  1175.       partition. 
  1176.    3. This active partition is Boot Manager, it will present you a menu of 
  1177.       bootable systems. 
  1178.    4. When you select the OS/2 system, boot manager reads and executes the code 
  1179.       in the boot record of the selected partition. 
  1180.    5. This code is called a "black box". Its role is to load a micro IFS in 
  1181.       memory. This micro IFS is a real mode IFS with just enough brain to read 
  1182.       a few files. 
  1183.    6. When the micro IFS receives control, it loads the OS/2 loader (stored in 
  1184.       OS2LDR). It also loads a mini IFS : a mini IFS is a protect mode IFS with 
  1185.       limited read only capabilities, just a little bit more clever than a 
  1186.       micro IFS ! (The HPFS mini IFS is stored in OS2BOOT) It then passes 
  1187.       control to OS2LDR, along with the current state of memory. 
  1188.    7. OS2LDR then loads OS2KRNL from disk, applies required fixups, and gives 
  1189.       control to the kernel. 
  1190.    8. The kernel then loads the mini IFS from its memory image. The mini IFS is 
  1191.       used to load the base device drivers, then the normal device drivers and 
  1192.       IFSes, then the VDD drivers. 
  1193.    9. When the normal HPFS IFS is loaded, it replaces the mini IFS. 
  1194.  
  1195.  As you can see, the OS/2 kernel doesn't know anything about HPFS. It even 
  1196.  makes no assumption of booting off of disk. 
  1197.  
  1198.  
  1199. ΓòÉΓòÉΓòÉ 10.2. Understanding the normal Linux ext2fs boot sequence ΓòÉΓòÉΓòÉ
  1200.  
  1201.  Assume you have a Linux system with OS/2 Boot Manager installed as the main 
  1202. boot loader, and LILO installed in the superblock of the Linux boot partition. 
  1203.  
  1204.    1. Ctrl+Alt+Del or Power on gives control to the power-on-self-test (POST) 
  1205.       code. the POST code after hardware initializations issues an INT 19h. 
  1206.    2. INT 19h load the first sector of the first drive (the MBR), and executes 
  1207.       it. This code will load and execute the boot record of the active primary 
  1208.       partition. 
  1209.    3. This active partition is Boot Manager, it will present you a menu of 
  1210.       bootable systems. 
  1211.    4. When you select the Linux system, boot manager reads and executes the 
  1212.       code in the boot record of the selected partition. 
  1213.    5. This code is actually the LILO first stage loader. its role is to load 
  1214.       the LILO second stage loader. 
  1215.    6. The LILO second stage loader loads the disk map of the boot image, then 
  1216.       using this map it loads the Linux kernel, as well as command line 
  1217.       parameters. It then gives control to the setup code stored at the 
  1218.       beginning of the Linux boot image. 
  1219.    7. The setup code then explores the hardware configuration, switches to 
  1220.       protect mode and passes control to the Linux kernel. 
  1221.    8. When the Linux kernel receives control, it executes its initialization 
  1222.       routines, and initializes the device drivers present in the boot image. 
  1223.    9. It then executes the init process. 
  1224.  
  1225.  The main difference here is that the Linux kernel does not load dynamically 
  1226.  the device drivers, and especially the ext2fs driver. They are all present in 
  1227.  the boot image. While it greatly simplifies the boot sequence (no mini IFS, no 
  1228.  micro IFS ...) it requires a reconmpilation whenever you want to add or remove 
  1229.  a driver. 
  1230.  
  1231.  When you run LILO to install a new kernel, it installs a map of the kernel 
  1232.  boot image, and a boot loader in the boot record. LILO's main advantage is to 
  1233.  be independant of the file system it uses, and even more : it knows absolutely 
  1234.  nothing about ext2fs, FAT and so on. It uses the disk map to load the boot 
  1235.  image. This is the reason why you must re-run LILO whenever you touch your 
  1236.  kernel file. LILO makes no assumption of booting a Linux kernel image : it can 
  1237.  load other systems as well : it loads the specified file in a well known place 
  1238.  in memory regardless of its type, and gives it control. 
  1239.  
  1240.  
  1241. ΓòÉΓòÉΓòÉ 10.3. Understanding the ext2-os2 OS/2 ext2fs boot sequence ΓòÉΓòÉΓòÉ
  1242.  
  1243. ext2-os2 uses a mix of these two different sequences to boot OS/2 from a Linux 
  1244. ext2fs partition. In this package there are two new files : 
  1245.  
  1246.      MICROFSD.FSD : the Linux ext2fs micro IFS 
  1247.      MINIFSD.FSD : the Linux ext2fs mini FSD 
  1248.  
  1249.  The main difference between the normal OS/2 boot sequence and the ext2-os2 
  1250.  boot sequence is that ext2-os2 uses LILO as the "black box" described above. 
  1251.  LILO is actually configured to load MICROFSD.FSD instead of a standard Linux 
  1252.  kernel boot image. 
  1253.  
  1254.  Note:  LILO is required to boot OS/2 from a Linux partition. I tested it with 
  1255.         LILO 0.15 but it should also work with later versions. 
  1256.  
  1257.  The boot sequence will be (assuming you have OS/2 boot manager installed as 
  1258.  the main boot loader, and LILO in the superblock of the Linux partition) : 
  1259.  
  1260.    1. Ctrl+Alt+Del or Power on gives control to the power-on-self-test (POST) 
  1261.       code. the POST code after hardware initializations issues an INT 19h. 
  1262.    2. INT 19h load the first sector of the first drive (the MBR), and executes 
  1263.       it. This code will load and execute the boot record of the active primary 
  1264.       partition. 
  1265.    3. This active partition is Boot Manager, it will present you a menu of 
  1266.       bootable systems. 
  1267.    4. When you select the OS/2 system, boot manager reads and executes the code 
  1268.       in the boot record of the selected partition. 
  1269.    5. This code is actually the LILO first stage loader. its role is to load 
  1270.       the LILO second stage loader. 
  1271.    6. The LILO second stage loader loads the disk map of the boot image (which 
  1272.       is actually a map of MICROFSD.FSD), then using this map it loads the 
  1273.       micro FSD as well as as command line parameters. It then gives control to 
  1274.       the micro FSD. 
  1275.    7. When the micro IFS receives control, it loads the OS/2 loader (stored in 
  1276.       OS2LDR). It also loads the ext2fs mini IFS (MINIFSD.FSD). It then passes 
  1277.       control to OS2LDR, along with the current state of memory. 
  1278.    8. OS2LDR then loads OS2KRNL from disk, applies required fixups, and gives 
  1279.       control to the kernel. 
  1280.    9. The kernel then loads the mini IFS from its memory image. The mini IFS is 
  1281.       used to load the base device drivers, then the normal device drivers and 
  1282.       IFSes, then the VDD drivers. 
  1283.   10. When the normal ext2-os2 IFS is loaded, it replaces the mini IFS. 
  1284.  
  1285.  
  1286. ΓòÉΓòÉΓòÉ 10.4. Installing and configuring OS/2 on a Linux ext2fs partition ΓòÉΓòÉΓòÉ
  1287.  
  1288.    1. Sample initial situation 
  1289.    2. Copying OS/2 a Linux ext2fs partition 
  1290.    3. Copying the required ext2-os2 files on the ext2fs partition 
  1291.    4. Updating CONFIG.SYS 
  1292.    5. Configuring and running LILO to boot OS/2 from your ext2fs partition 
  1293.    6. Now time to reboot ... 
  1294.  
  1295.  
  1296. ΓòÉΓòÉΓòÉ 10.4.1. Sample initial situation ΓòÉΓòÉΓòÉ
  1297.  
  1298. hard disk 1 (100 Mb IDE drive) : 
  1299.  
  1300. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1301. ΓöéOS/2 driveΓöéOS/2 BM   ΓöéLinux     ΓöéLinux     ΓöéDescription                                  Γöé
  1302. Γöéletter    Γöéname      Γöédevice    Γöémount     Γöé                                             Γöé
  1303. Γöé          Γöé          Γöéname      Γöépoint     Γöé                                             Γöé
  1304. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1305. Γöé          Γöé          Γöé/dev/hda2 Γöé          ΓöéOS/2 boot manager partition                  Γöé
  1306. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1307. ΓöéC:        Γöétest      Γöé/dev/hda3 Γöé/disk_c   ΓöéLinux ext2fs test (type 0x07) partition      Γöé
  1308. Γöé          Γöé          Γöé          Γöé          Γöé(ext2flt not used to mount it)               Γöé
  1309. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1310. ΓöéF:        Γöélinux     Γöé/dev/hda1 Γöé/         ΓöéLinux ext2fs root (type 0x83) partition      Γöé
  1311. Γöé          Γöé          Γöé          Γöé          Γöé(ext2flt used to mount it)                   Γöé
  1312. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1313.  
  1314. ((See also linux and OS/2 fdisk output for drive 1) 
  1315.  
  1316. hard disk 2 (1.2 Gb SCSI drive) : 
  1317.  
  1318. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1319. ΓöéOS/2 driveΓöéOS/2 BM   ΓöéLinux     ΓöéLinux     ΓöéDescription                                  Γöé
  1320. Γöéletter    Γöéname      Γöédevice    Γöémount     Γöé                                             Γöé
  1321. Γöé          Γöé          Γöéname      Γöépoint     Γöé                                             Γöé
  1322. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1323. ΓöéD:        ΓöéWARP      Γöé/dev/sda1 Γöé          Γöéprimary OS/2 HPFS with OS/2 WARP installed   Γöé
  1324. Γöé          Γöé          Γöé          Γöé          Γöé(normal use)                                 Γöé
  1325. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1326. ΓöéD:        ΓöéEXT2-OS2  Γöé/dev/sda2 Γöé          Γöéprimary OS/2 HPFS with OS/2 and kernel       Γöé
  1327. Γöé          Γöé          Γöé          Γöé          Γöédebugger (to test ext2-os2)                  Γöé
  1328. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1329. ΓöéE:        Γöé          Γöé/dev/sda5 Γöé          Γöéextended OS/2 HPFS data partition.           Γöé
  1330. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1331.  
  1332. ((See also linux and OS/2 fdisk output for drive 2) 
  1333.  
  1334. LILO is installed in the superblock of /dev/hda1, and is configured to load 
  1335. /vmlinuz from this partition. (lilo.conf used to configure LILO) 
  1336.  
  1337.  
  1338. ΓòÉΓòÉΓòÉ 10.4.2. Copying OS/2 a Linux ext2fs partition ΓòÉΓòÉΓòÉ
  1339.  
  1340. To install OS/2, the easiest way will be to use the IBM EWS bootos2.zip package 
  1341. (available on usual OS/2 ftp sites). This package can create a bootable system 
  1342. from an existing installed system. It can install a system on either floppies 
  1343. or hard disks. Moreover it can create a minimal system (single text mode 
  1344. session), a PM enabled system, a WPS enabled system ... 
  1345.  
  1346. Here's how I installed a PM enabled system on drive F:. To do this, I booted my 
  1347. normal OS/2 system, went to the bootos2 directory and typed : 
  1348.  
  1349. BOOTOS2 TARGET=F: TYPE=PM
  1350.  
  1351. Some important remarks: 
  1352.  
  1353.      you must have the two OS/2 installation disks handy, bootos2 will ask 
  1354.       them. 
  1355.      when BOOTOS2 asks if you want to format the target partition, you must 
  1356.       answer to skip format !! 
  1357.      UEXT2.DLL must be somewhere in you LIBPATH, otherwise bootos2 will abort. 
  1358.      Sometimes for some reason, bootos2 forgets to copy the hidden OS2DUMP 
  1359.       file in the root directory. Please ensure that it has been copied. 
  1360.  
  1361.  Note on how to install a WPS enabled system 
  1362.  
  1363.  
  1364. ΓòÉΓòÉΓòÉ 10.4.3. Copying the required ext2-os2 files on the ext2fs partition ΓòÉΓòÉΓòÉ
  1365.  
  1366. Make a directory on the ext2fs partition to store ext2-os2 files (for instance 
  1367. F:\os2\fs\ext2) and copy the following files in it : 
  1368.  
  1369.      ext2-os2.exe 
  1370.      ext2-os2.ifs 
  1371.      ext2-os2.sym 
  1372.      ext2_lw.exe 
  1373.      sync.exe 
  1374.      vfsapi.dll 
  1375.      uext2.dll 
  1376.  
  1377.  Copy the following files in F:\OS2 : 
  1378.  
  1379.      ext2flt.flt 
  1380.      ext2flt.sym 
  1381.  
  1382.  Copy the following files in F:\ : 
  1383.  
  1384.      microfsd.fsd 
  1385.      minifsd.fsd 
  1386.  
  1387.  
  1388. ΓòÉΓòÉΓòÉ 10.4.4. Updating CONFIG.SYS ΓòÉΓòÉΓòÉ
  1389.  
  1390. Then add the following statements at the beginning of F:\CONFIG.SYS  : 
  1391.  
  1392. REM
  1393. REM this should be the beginning of CONFIG.SYS
  1394. REM
  1395. IFS=F:\OS2\FS\EXT2\EXT2-OS2.IFS -cache:256 -rw -case_retensive <add other options if necessary>
  1396. RUN=F:\OS2\FS\EXT2\EXT2_LW.EXE
  1397. BASEDEV=EXT2FLT.FLT /W <add other options if necessary>
  1398. SET EXT2_TZ=<put your time zone here>
  1399.  
  1400. Note: 
  1401.  
  1402.      the IFS managing the boot drive - in this case ext2-os2.ifs - must always 
  1403.       be the first statement in CONFIG.SYS, or OS/2 will crash during boot. 
  1404.      write access must be enabled or OS/2 will not work properly. 
  1405.      the -case_retensive option is necessary or OS/2 won't boot 
  1406.  
  1407.  Update the SWAPPATH line so that the SWAPPER.DAT file resides somewhere BUT 
  1408.  NOT ON A EXT2FS PARTITION !!!  For instance in our sample case : 
  1409.  
  1410.   REM
  1411.   REM D: is *NOT* a Linux ext2fs file system.
  1412.   REM the two 2048 numbers are samples only, change them to values meeting your
  1413.   REM requirements
  1414.   REM
  1415.   SWAPPATH=D:\TMP\SWAPPER.DAT 2048 2048
  1416.  
  1417.  If necessary, update the MEMMAN statement as follows : 
  1418.  
  1419.   MEMMAN=SWAP,PROTECT
  1420.  
  1421.  
  1422. ΓòÉΓòÉΓòÉ 10.4.5. Configuring and running LILO to boot OS/2 from your ext2fs partition ΓòÉΓòÉΓòÉ
  1423.  
  1424.  Now reboot under Linux. In this step we'll need to know several things : 
  1425.  
  1426.      the boot drive geometry (number of tracks, number of sectors per track). 
  1427.       You can know them in your drive's manual, or in your BIOS setup. 
  1428.      the boot partition geometry (starting sector, number of sectors). You can 
  1429.       know it using fdisk -l (list partitions) 
  1430.      the boot drive BIOS device code (first drive is 0x80, second is 0x81 ...) 
  1431.  Then edit the /etc/lilo.conf to add /microfsd.fsd as a new boot image : 
  1432.  
  1433.   #
  1434.   # Start LILO global section
  1435.   #
  1436.   boot = /dev/hda1                # installs LILO in the superblock of /dev/hda1
  1437.   vga = normal                    # force sane state
  1438.   ramdisk = 0                     # paranoia setting
  1439.   prompt
  1440.   #
  1441.   # End LILO global section
  1442.   #
  1443.   # Linux bootable partition config begins
  1444.   #
  1445.   image = /vmlinuz                # normal Linux kernel image
  1446.     root = /dev/hda1
  1447.     label = linux                 # name to enter at LILO prompt
  1448.     read-only                     # Non-UMSDOS filesystems should be mounted read-only for checking
  1449.   #
  1450.   # Linux bootable partition config ends
  1451.   #
  1452.   # OS/2 bootable partition config begins
  1453.   #
  1454.   image = /microfsd.fsd           # ext2-os2 micro-fsd file (OS2LDR loader).
  1455.     label = test_os2              # name to enter at LILO prompt
  1456.     append = "os2_bios_device=0x80 os2_bootdrive=5 os2_hidden_sectors=0x19884 os2_sect=35 os2_head=6 os2_total_sectors=100800 os2_bytes_per_sector=512"
  1457.   #
  1458.   # OS/2 bootable partition config ends
  1459.   #
  1460.  
  1461.  In the "append=" we've passed mandatory informations to the ext2-os2 micro FSD 
  1462.  so that it can boot OS/2 properly. Below is a description of these parameters. 
  1463.  
  1464.  Note:  All these parameters are required. A wrong value in one of them will 
  1465.         prevent OS/2 from booting normally. 
  1466.  
  1467.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1468.   Γöéos2_bootdrive       Γöéthis is the OS/2 drive letter of the boot    Γöé
  1469.   Γöé                    Γöédrive. It MUST REFLECT the drive letter as   Γöé
  1470.   Γöé                    Γöéseen in a normal situation (in our case F:). Γöé
  1471.   Γöé                    ΓöéYou CANNOT REORDER drive letters with this   Γöé
  1472.   Γöé                    Γöéoption ; use ext2flt's /M option instead and Γöé
  1473.   Γöé                    Γöéupdate this value accordingly.               Γöé
  1474.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1475.   Γöéos2_bios_device     Γöéthis is the physical drive BIOS device code. Γöé
  1476.   Γöé                    ΓöéFloppy drives are 0 (A:) and 1 (:). Hard     Γöé
  1477.   Γöé                    Γöédrives are numbered starting at 0x80, so     Γöé
  1478.   Γöé                    Γöéphysical hard drive 1 is 0x80, drive 2 is    Γöé
  1479.   Γöé                    Γöé0x81.                                        Γöé
  1480.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1481.   Γöéos2_hidden_sectors  Γöéthis is sector number (512 bytes) of the     Γöé
  1482.   Γöé                    Γöéfirst sector of the boot partition. Use fdiskΓöé
  1483.   Γöé                    Γöé-uS -l under Linux to know it.               Γöé
  1484.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1485.   Γöéos2_total_sectors   Γöéthis is the size of the boot partition in 512Γöé
  1486.   Γöé                    Γöébytes sectors. Use fdisk -uS -l to know it.  Γöé
  1487.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1488.   Γöéos2_sect            Γöéthis is the number of sectors per track      Γöé
  1489.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1490.   Γöéos2_bytes_per_sectorΓöéthis is the hardware sector size in bytes    Γöé
  1491.   Γöé                    Γöé(normally 512 bytes).                        Γöé
  1492.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1493.   Γöéos2_head            Γöéthis is the number of heads                  Γöé
  1494.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1495.  
  1496.  Then run the map installer to update LILO configuration as follows : 
  1497.  
  1498.   lilo -v
  1499.  
  1500.  
  1501. ΓòÉΓòÉΓòÉ 10.4.6. Now time to reboot ... ΓòÉΓòÉΓòÉ
  1502.  
  1503. Now we can shutdown the system and reboot. Once in OS/2 boot manager menu, 
  1504. select "linux". This will start LILO. Once LILO is up - it should prompt 
  1505. "lilo:" at the top left corner of the screen - type "test_os2", then <ENTER> 
  1506. then let's prey !  Here are some checkpoints : 
  1507.  
  1508. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1509. Γöéext2-os2 MICROFSD   Γöémicrofsd.fsd has been successfuly loaded by  Γöé
  1510. Γöébanner appears on   ΓöéLILO, and has been successfuly started.      Γöé
  1511. Γöétop of the screen   Γöé                                             Γöé
  1512. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1513. Γöéa little white box  Γöéit means that microfsd.fsd has successfuly   Γöé
  1514. Γöéfollowed by the wordΓöéloaded OS2LDR and minifsd.fsd, and that      Γöé
  1515. Γöé"OS2" appears at theΓöéOS2LDR has been successfuly started.         Γöé
  1516. Γöétop left corner of  Γöé                                             Γöé
  1517. Γöéthe screen.         Γöé                                             Γöé
  1518. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1519. Γöéthe OS/2 logo bitmapΓöéit means that OS2LDR has successfuly loaded  Γöé
  1520. Γöéappears             ΓöéOS2KRNL, successfuly started the kernel, thatΓöé
  1521. Γöé                    Γöémicrofsd.fsd's job is over, and that         Γöé
  1522. Γöé                    Γöéminifsd.fsd's job is starting. From this     Γöé
  1523. Γöé                    Γöépoint CONFIG.SYS base device drivers begin toΓöé
  1524. Γöé                    Γöébe loaded.                                   Γöé
  1525. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1526. Γöéthe normal ext2-os2 Γöéext2-os2.ifs has just been loaded.           Γöé
  1527. Γöébanner appears.     Γöé                                             Γöé
  1528. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1529. ΓöéPM appears (if a PM ΓöéOS/2 boot process is successful !            Γöé
  1530. Γöésystem), or the OS/2Γöé                                             Γöé
  1531. Γöécommand prompt      Γöé                                             Γöé
  1532. Γöéappears.            Γöé                                             Γöé
  1533. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1534.  
  1535. Note: 
  1536.  
  1537.       The boot process will be probably slightly longer than a normal boot. 
  1538.       This is absolutely normal. 
  1539.       You can press ALT+F2 when the little white box appears : it will make 
  1540.       OS/2 tell what driver it is currently loading. 
  1541.       You can hook an ASCII terminal on the COM2 port (for instance a PC with a 
  1542.       terminal emulator, and a null-modem cable), ext2-os2 will write debug 
  1543.       information on COM2 port during the boot process. 
  1544.  
  1545.  
  1546. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1547.  
  1548.             GNU GENERAL PUBLIC LICENSE
  1549.                Version 2, June 1991
  1550.  
  1551.  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
  1552.                           675 Mass Ave, Cambridge, MA 02139, USA
  1553.  Everyone is permitted to copy and distribute verbatim copies
  1554.  of this license document, but changing it is not allowed.
  1555.  
  1556.                 Preamble
  1557.  
  1558.   The licenses for most software are designed to take away your
  1559. freedom to share and change it.  By contrast, the GNU General Public
  1560. License is intended to guarantee your freedom to share and change free
  1561. software--to make sure the software is free for all its users.  This
  1562. General Public License applies to most of the Free Software
  1563. Foundation's software and to any other program whose authors commit to
  1564. using it.  (Some other Free Software Foundation software is covered by
  1565. the GNU Library General Public License instead.)  You can apply it to
  1566. your programs, too.
  1567.  
  1568.   When we speak of free software, we are referring to freedom, not
  1569. price.  Our General Public Licenses are designed to make sure that you
  1570. have the freedom to distribute copies of free software (and charge for
  1571. this service if you wish), that you receive source code or can get it
  1572. if you want it, that you can change the software or use pieces of it
  1573. in new free programs; and that you know you can do these things.
  1574.  
  1575.   To protect your rights, we need to make restrictions that forbid
  1576. anyone to deny you these rights or to ask you to surrender the rights.
  1577. These restrictions translate to certain responsibilities for you if you
  1578. distribute copies of the software, or if you modify it.
  1579.  
  1580.   For example, if you distribute copies of such a program, whether
  1581. gratis or for a fee, you must give the recipients all the rights that
  1582. you have.  You must make sure that they, too, receive or can get the
  1583. source code.  And you must show them these terms so they know their
  1584. rights.
  1585.  
  1586.   We protect your rights with two steps: (1) copyright the software, and
  1587. (2) offer you this license which gives you legal permission to copy,
  1588. distribute and/or modify the software.
  1589.  
  1590.   Also, for each author's protection and ours, we want to make certain
  1591. that everyone understands that there is no warranty for this free
  1592. software.  If the software is modified by someone else and passed on, we
  1593. want its recipients to know that what they have is not the original, so
  1594. that any problems introduced by others will not reflect on the original
  1595. authors' reputations.
  1596.  
  1597.   Finally, any free program is threatened constantly by software
  1598. patents.  We wish to avoid the danger that redistributors of a free
  1599. program will individually obtain patent licenses, in effect making the
  1600. program proprietary.  To prevent this, we have made it clear that any
  1601. patent must be licensed for everyone's free use or not licensed at all.
  1602.  
  1603.   The precise terms and conditions for copying, distribution and
  1604. modification follow.
  1605.  
  1606.             GNU GENERAL PUBLIC LICENSE
  1607.    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  1608.  
  1609.   0. This License applies to any program or other work which contains
  1610. a notice placed by the copyright holder saying it may be distributed
  1611. under the terms of this General Public License.  The "Program", below,
  1612. refers to any such program or work, and a "work based on the Program"
  1613. means either the Program or any derivative work under copyright law:
  1614. that is to say, a work containing the Program or a portion of it,
  1615. either verbatim or with modifications and/or translated into another
  1616. language.  (Hereinafter, translation is included without limitation in
  1617. the term "modification".)  Each licensee is addressed as "you".
  1618.  
  1619. Activities other than copying, distribution and modification are not
  1620. covered by this License; they are outside its scope.  The act of
  1621. running the Program is not restricted, and the output from the Program
  1622. is covered only if its contents constitute a work based on the
  1623. Program (independent of having been made by running the Program).
  1624. Whether that is true depends on what the Program does.
  1625.  
  1626.   1. You may copy and distribute verbatim copies of the Program's
  1627. source code as you receive it, in any medium, provided that you
  1628. conspicuously and appropriately publish on each copy an appropriate
  1629. copyright notice and disclaimer of warranty; keep intact all the
  1630. notices that refer to this License and to the absence of any warranty;
  1631. and give any other recipients of the Program a copy of this License
  1632. along with the Program.
  1633.  
  1634. You may charge a fee for the physical act of transferring a copy, and
  1635. you may at your option offer warranty protection in exchange for a fee.
  1636.  
  1637.   2. You may modify your copy or copies of the Program or any portion
  1638. of it, thus forming a work based on the Program, and copy and
  1639. distribute such modifications or work under the terms of Section 1
  1640. above, provided that you also meet all of these conditions:
  1641.  
  1642.     a) You must cause the modified files to carry prominent notices
  1643.     stating that you changed the files and the date of any change.
  1644.  
  1645.     b) You must cause any work that you distribute or publish, that in
  1646.     whole or in part contains or is derived from the Program or any
  1647.     part thereof, to be licensed as a whole at no charge to all third
  1648.     parties under the terms of this License.
  1649.  
  1650.     c) If the modified program normally reads commands interactively
  1651.     when run, you must cause it, when started running for such
  1652.     interactive use in the most ordinary way, to print or display an
  1653.     announcement including an appropriate copyright notice and a
  1654.     notice that there is no warranty (or else, saying that you provide
  1655.     a warranty) and that users may redistribute the program under
  1656.     these conditions, and telling the user how to view a copy of this
  1657.     License.  (Exception: if the Program itself is interactive but
  1658.     does not normally print such an announcement, your work based on
  1659.     the Program is not required to print an announcement.)
  1660.  
  1661. These requirements apply to the modified work as a whole.  If
  1662. identifiable sections of that work are not derived from the Program,
  1663. and can be reasonably considered independent and separate works in
  1664. themselves, then this License, and its terms, do not apply to those
  1665. sections when you distribute them as separate works.  But when you
  1666. distribute the same sections as part of a whole which is a work based
  1667. on the Program, the distribution of the whole must be on the terms of
  1668. this License, whose permissions for other licensees extend to the
  1669. entire whole, and thus to each and every part regardless of who wrote it.
  1670.  
  1671. Thus, it is not the intent of this section to claim rights or contest
  1672. your rights to work written entirely by you; rather, the intent is to
  1673. exercise the right to control the distribution of derivative or
  1674. collective works based on the Program.
  1675.  
  1676. In addition, mere aggregation of another work not based on the Program
  1677. with the Program (or with a work based on the Program) on a volume of
  1678. a storage or distribution medium does not bring the other work under
  1679. the scope of this License.
  1680.  
  1681.   3. You may copy and distribute the Program (or a work based on it,
  1682. under Section 2) in object code or executable form under the terms of
  1683. Sections 1 and 2 above provided that you also do one of the following:
  1684.  
  1685.     a) Accompany it with the complete corresponding machine-readable
  1686.     source code, which must be distributed under the terms of Sections
  1687.     1 and 2 above on a medium customarily used for software interchange; or,
  1688.  
  1689.     b) Accompany it with a written offer, valid for at least three
  1690.     years, to give any third party, for a charge no more than your
  1691.     cost of physically performing source distribution, a complete
  1692.     machine-readable copy of the corresponding source code, to be
  1693.     distributed under the terms of Sections 1 and 2 above on a medium
  1694.     customarily used for software interchange; or,
  1695.  
  1696.     c) Accompany it with the information you received as to the offer
  1697.     to distribute corresponding source code.  (This alternative is
  1698.     allowed only for noncommercial distribution and only if you
  1699.     received the program in object code or executable form with such
  1700.     an offer, in accord with Subsection b above.)
  1701.  
  1702. The source code for a work means the preferred form of the work for
  1703. making modifications to it.  For an executable work, complete source
  1704. code means all the source code for all modules it contains, plus any
  1705. associated interface definition files, plus the scripts used to
  1706. control compilation and installation of the executable.  However, as a
  1707. special exception, the source code distributed need not include
  1708. anything that is normally distributed (in either source or binary
  1709. form) with the major components (compiler, kernel, and so on) of the
  1710. operating system on which the executable runs, unless that component
  1711. itself accompanies the executable.
  1712.  
  1713. If distribution of executable or object code is made by offering
  1714. access to copy from a designated place, then offering equivalent
  1715. access to copy the source code from the same place counts as
  1716. distribution of the source code, even though third parties are not
  1717. compelled to copy the source along with the object code.
  1718.  
  1719.   4. You may not copy, modify, sublicense, or distribute the Program
  1720. except as expressly provided under this License.  Any attempt
  1721. otherwise to copy, modify, sublicense or distribute the Program is
  1722. void, and will automatically terminate your rights under this License.
  1723. However, parties who have received copies, or rights, from you under
  1724. this License will not have their licenses terminated so long as such
  1725. parties remain in full compliance.
  1726.  
  1727.   5. You are not required to accept this License, since you have not
  1728. signed it.  However, nothing else grants you permission to modify or
  1729. distribute the Program or its derivative works.  These actions are
  1730. prohibited by law if you do not accept this License.  Therefore, by
  1731. modifying or distributing the Program (or any work based on the
  1732. Program), you indicate your acceptance of this License to do so, and
  1733. all its terms and conditions for copying, distributing or modifying
  1734. the Program or works based on it.
  1735.  
  1736.   6. Each time you redistribute the Program (or any work based on the
  1737. Program), the recipient automatically receives a license from the
  1738. original licensor to copy, distribute or modify the Program subject to
  1739. these terms and conditions.  You may not impose any further
  1740. restrictions on the recipients' exercise of the rights granted herein.
  1741. You are not responsible for enforcing compliance by third parties to
  1742. this License.
  1743.  
  1744.   7. If, as a consequence of a court judgment or allegation of patent
  1745. infringement or for any other reason (not limited to patent issues),
  1746. conditions are imposed on you (whether by court order, agreement or
  1747. otherwise) that contradict the conditions of this License, they do not
  1748. excuse you from the conditions of this License.  If you cannot
  1749. distribute so as to satisfy simultaneously your obligations under this
  1750. License and any other pertinent obligations, then as a consequence you
  1751. may not distribute the Program at all.  For example, if a patent
  1752. license would not permit royalty-free redistribution of the Program by
  1753. all those who receive copies directly or indirectly through you, then
  1754. the only way you could satisfy both it and this License would be to
  1755. refrain entirely from distribution of the Program.
  1756.  
  1757. If any portion of this section is held invalid or unenforceable under
  1758. any particular circumstance, the balance of the section is intended to
  1759. apply and the section as a whole is intended to apply in other
  1760. circumstances.
  1761.  
  1762. It is not the purpose of this section to induce you to infringe any
  1763. patents or other property right claims or to contest validity of any
  1764. such claims; this section has the sole purpose of protecting the
  1765. integrity of the free software distribution system, which is
  1766. implemented by public license practices.  Many people have made
  1767. generous contributions to the wide range of software distributed
  1768. through that system in reliance on consistent application of that
  1769. system; it is up to the author/donor to decide if he or she is willing
  1770. to distribute software through any other system and a licensee cannot
  1771. impose that choice.
  1772.  
  1773. This section is intended to make thoroughly clear what is believed to
  1774. be a consequence of the rest of this License.
  1775.  
  1776.   8. If the distribution and/or use of the Program is restricted in
  1777. certain countries either by patents or by copyrighted interfaces, the
  1778. original copyright holder who places the Program under this License
  1779. may add an explicit geographical distribution limitation excluding
  1780. those countries, so that distribution is permitted only in or among
  1781. countries not thus excluded.  In such case, this License incorporates
  1782. the limitation as if written in the body of this License.
  1783.  
  1784.   9. The Free Software Foundation may publish revised and/or new versions
  1785. of the General Public License from time to time.  Such new versions will
  1786. be similar in spirit to the present version, but may differ in detail to
  1787. address new problems or concerns.
  1788.  
  1789. Each version is given a distinguishing version number.  If the Program
  1790. specifies a version number of this License which applies to it and "any
  1791. later version", you have the option of following the terms and conditions
  1792. either of that version or of any later version published by the Free
  1793. Software Foundation.  If the Program does not specify a version number of
  1794. this License, you may choose any version ever published by the Free Software
  1795. Foundation.
  1796.  
  1797.   10. If you wish to incorporate parts of the Program into other free
  1798. programs whose distribution conditions are different, write to the author
  1799. to ask for permission.  For software which is copyrighted by the Free
  1800. Software Foundation, write to the Free Software Foundation; we sometimes
  1801. make exceptions for this.  Our decision will be guided by the two goals
  1802. of preserving the free status of all derivatives of our free software and
  1803. of promoting the sharing and reuse of software generally.
  1804.  
  1805.                 NO WARRANTY
  1806.  
  1807.   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
  1808. FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
  1809. OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
  1810. PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
  1811. OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  1812. MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
  1813. TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
  1814. PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
  1815. REPAIR OR CORRECTION.
  1816.  
  1817.   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
  1818. WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
  1819. REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
  1820. INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
  1821. OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
  1822. TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
  1823. YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
  1824. PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
  1825. POSSIBILITY OF SUCH DAMAGES.
  1826.  
  1827.              END OF TERMS AND CONDITIONS
  1828.  
  1829.     Appendix: How to Apply These Terms to Your New Programs
  1830.  
  1831.   If you develop a new program, and you want it to be of the greatest
  1832. possible use to the public, the best way to achieve this is to make it
  1833. free software which everyone can redistribute and change under these terms.
  1834.  
  1835.   To do so, attach the following notices to the program.  It is safest
  1836. to attach them to the start of each source file to most effectively
  1837. convey the exclusion of warranty; and each file should have at least
  1838. the "copyright" line and a pointer to where the full notice is found.
  1839.  
  1840.     <one line to give the program's name and a brief idea of what it does.>
  1841.     Copyright (C) 19yy  <name of author>
  1842.  
  1843.     This program is free software; you can redistribute it and/or modify
  1844.     it under the terms of the GNU General Public License as published by
  1845.     the Free Software Foundation; either version 2 of the License, or
  1846.     (at your option) any later version.
  1847.  
  1848.     This program is distributed in the hope that it will be useful,
  1849.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  1850.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1851.     GNU General Public License for more details.
  1852.  
  1853.     You should have received a copy of the GNU General Public License
  1854.     along with this program; if not, write to the Free Software
  1855.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1856.  
  1857. Also add information on how to contact you by electronic and paper mail.
  1858.  
  1859. If the program is interactive, make it output a short notice like this
  1860. when it starts in an interactive mode:
  1861.  
  1862.     Gnomovision version 69, Copyright (C) 19yy name of author
  1863.     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
  1864.     This is free software, and you are welcome to redistribute it
  1865.     under certain conditions; type `show c' for details.
  1866.  
  1867. The hypothetical commands `show w' and `show c' should show the appropriate
  1868. parts of the General Public License.  Of course, the commands you use may
  1869. be called something other than `show w' and `show c'; they could even be
  1870. mouse-clicks or menu items--whatever suits your program.
  1871.  
  1872. You should also get your employer (if you work as a programmer) or your
  1873. school, if any, to sign a "copyright disclaimer" for the program, if
  1874. necessary.  Here is a sample; alter the names:
  1875.  
  1876.   Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  1877.   `Gnomovision' (which makes passes at compilers) written by James Hacker.
  1878.  
  1879.   <signature of Ty Coon>, 1 April 1989
  1880.   Ty Coon, President of Vice
  1881.  
  1882. This General Public License does not permit incorporating your program into
  1883. proprietary programs.  If your program is a subroutine library, you may
  1884. consider it more useful to permit linking proprietary applications with the
  1885. library.  If this is what you want to do, use the GNU Library General
  1886. Public License instead of this License.
  1887.  
  1888.  
  1889. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1890.  
  1891. This is an example where drive letters won't be changed when you toggle the 
  1892. ext2fs partition ID from 0x83 to 0x7. ext2flt gives the same result without 
  1893. having to alter the partition table. 
  1894.  
  1895. Before 
  1896.  
  1897. Physical  Description  Partition  Drive   Type             Status
  1898.   drive                     ID    letter
  1899.   1       Boot mgr          0a      -     -                Startable
  1900.   1       OS/2              07      C:    Extended         Bootable
  1901.   1       Linux ext2fs      83      -     Extended         Bootable   <=== We toggle it from 0x83 ...
  1902.  
  1903. If we toggle the ext2fs partition type 
  1904.  
  1905. Physical  Description  Partition  Drive   Type             Status
  1906.   drive                     ID    letter
  1907.   1       Boot mgr          0a      -     -                Startable
  1908.   1       OS/2              07      C:    Extended         Bootable
  1909.   1       Linux ext2fs      07      D:    Extended         Bootable   <=== ... to 0x07
  1910.  
  1911. If we use ext2flt.flt 
  1912.  
  1913. Physical  Description  Partition  Drive   Type             Status
  1914.   drive                     ID    letter
  1915.   1       Boot mgr          0a      -     -                Startable
  1916.   1       OS/2              07      C:    Extended         Bootable
  1917.   1       Linux ext2fs      07      D:    Extended
  1918.  
  1919. The pink partition is the one as shown by ext2flt.flt to OS/2. 
  1920.  
  1921.  
  1922. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1923.  
  1924.  
  1925. In this case, the OS/2 drive letter is changed from C: to D: when you change 
  1926. the Linux partition ID. If you want to use the ext2 IFS driver you'll have to 
  1927. use ext2flt.flt  so that the ext2fs partition appears after the OS/2 partition. 
  1928.  
  1929. Before 
  1930.  
  1931. Physical  Description  Partition  Drive   Type             Status
  1932.   drive                     ID    letter
  1933.   1       Boot mgr          0a      -     -                Startable
  1934.   1       Linux ext2        83      -     Primary          Bootable   <=== We toggle it from 0x83 ...
  1935.   1       OS/2 System       07      C:    Extended         Bootable
  1936.  
  1937. If we toggle the partiton ID, the drive letters change : 
  1938.  
  1939. Physical  Description  Partition  Drive   Type             Status
  1940.   drive                     ID    letter
  1941.   1       Boot mgr          0a      -     -                Startable
  1942.   1       Linux ext2        07      C:    Primary          Bootable   <=== ... to 0x07
  1943.   1       OS/2 System       07      D:    Extended         Bootable
  1944.  
  1945. The solution is to use ext2flt.flt : 
  1946.  
  1947. Physical  Description  Partition  Drive   Type             Status
  1948.   drive                     ID    letter
  1949.   1       Boot mgr          0a      -     -                Startable
  1950.   1       OS/2 System       07      C:    Extended         Bootable
  1951.   1       Linux ext2        07      D:    Extended
  1952.  
  1953. The pink partition is the one as shown by ext2flt.flt to OS/2. 
  1954.  
  1955.  
  1956. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1957.  
  1958. In this case, you cannot use the ext2 IFS driver alone and you are a good 
  1959. candidate for using ext2flt.flt. This is because only ONE primary partition can 
  1960. be active. ext2flt.flt will make your ext2fs partition appear as an extended 
  1961. volume located after your OS/2 partition. 
  1962.  
  1963. Physical  Description  Partition  Drive   Type             Status
  1964.   drive                     ID    letter
  1965.   1       Boot mgr          0a      -     -                Startable
  1966.   1       Linux ext2        83      -     Primary          Bootable
  1967.   1       OS/2 System       07      C:    Primary (active) Bootable
  1968.  
  1969. If we use ext2flt.flt : 
  1970.  
  1971. Physical  Description  Partition  Drive   Type             Status
  1972.   drive                     ID    letter
  1973.   1       Boot mgr          0a      -     -                Startable
  1974.   1       OS/2 System       07      C:    Primary (active) Bootable
  1975.   1       Linux ext2        07      D:    extended
  1976.  
  1977.  
  1978. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1979.  
  1980. [-q] : quiet initialization of ext2-os2.ifs (no banner during boot). Default is 
  1981. verbose initialization. 
  1982.  
  1983.  
  1984. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1985.  
  1986. [-cache:<max. disk cache size>] Specifies the MAXIMUM disk cache size. This 
  1987. value is the maximum amount of physical memory ext2-os2.ifs can dynamically 
  1988. allocate for disk cache buffers. The default value is 240 Kb. The minimum value 
  1989. is 240Kb. The maximum value depends on system resources (free physical memory). 
  1990.  
  1991. Note:  Please read the chapter "Dynamic disk cache considerations" 
  1992.  
  1993.  
  1994. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1995.  
  1996. [rw] : enable write access. Default is write disabled. 
  1997.  
  1998. Note:  If you use ext2flt, don't forget to enable write access on the 
  1999.        ext2flt.flt command line. (/W switch) 
  2000.  
  2001.  WARNING - DON'T FORGET TO BACKUP ALL YOUR DATA PRIOR TO ENABLE WRITE ACCESS 
  2002.  !!! 
  2003.  
  2004.  
  2005. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2006.  
  2007. [-no_auto_fsck] : prevents ext2-os2 from forcing Linux to run e2fsck on 
  2008. partitions "touched" by OS/2 Default is to force Linux to run e2fsck. 
  2009.  
  2010. Note:  Please read the chapter "Automatic check disk" 
  2011.  
  2012.  
  2013. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2014.  
  2015. [-case_retensive] : makes ext2-os2.ifs behave like HPFS. If this option is set, 
  2016. case will not be significant but will be retained within the file system. For 
  2017. instance File and FILE are considered to be the same file. Default is case 
  2018. sensitive. 
  2019.  
  2020. WARNING - PLEASE READ "Case sensitivity considerations" BEFORE USING THIS 
  2021. OPTION !!! 
  2022.  
  2023.  
  2024. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2025.  
  2026. [-<IFS entry point to trace>] : traces a specific IFS entry point. Using this 
  2027. option makes ext2-os2.ifs produce an output in ext2-os2.exe whenever the 
  2028. specified IFS entry point is entered. You can specify several IFS entry points 
  2029. to trace for instance "IFS=ext2-os2.ifs -FS_MKDIR -FS_RMDIR". 
  2030.  
  2031. Note:  Please notice that tracing will have a performance hit (can be 
  2032.        important). 
  2033.  
  2034.  Currently supported IFS entry points for tracing are : 
  2035.  
  2036.      FS_CLOSE 
  2037.      FS_COMMIT 
  2038.      FS_DELETE 
  2039.      FS_EXIT 
  2040.      FS_FILEINFO 
  2041.      FS_FINDCLOSE 
  2042.      FS_FINDFIRST 
  2043.      FS_IOCTL 
  2044.      FS_OPENCREATE 
  2045.      FS_PATHINFO 
  2046.      FS_PROCESSNAME 
  2047.      FS_READ 
  2048.      FS_WRITE 
  2049.      FS_CHDIR 
  2050.      FS_RMDIR 
  2051.      FS_MKDIR 
  2052.  
  2053.  
  2054. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2055.  
  2056. [-no_strat2] : disable use of extended I/O operations (strategy 2 calls). 
  2057. Default is to use them when they are supported by the block device driver. 
  2058. Normally it works well with OS2DASD.DMD, but if you encounter problems with 
  2059. extended I/O with other drivers, you can disable them. 
  2060.  
  2061. Note:  Using extended I/O results in HUGE performance improvements ; disabling 
  2062.        them with have a tremendous performance hit. 
  2063.  
  2064.  
  2065. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2066.  
  2067. [-errors=[panic|continue]] : specifies the behaviour to adopt when the ext2fs 
  2068. file system code detects an error within the file system. "panic" halts the 
  2069. system, "continue" makes ext2-os2 only output a message in ext2-os2.exe and 
  2070. continue. Default is "panic" (unlike Linux, whose default is "continue"). 
  2071.  
  2072. Note:  If a system halt occurs with a message beginning with "ext2-os2 detected 
  2073.        a file system error on drive %c", it means that the ext2fs file system 
  2074.        code found a file system corruption. You MUST run e2fsck from Linux to 
  2075.        repair your file system. This type of error is generally not specific to 
  2076.        ext2-os2, but the error would also have occured on Linux. 
  2077.        "-errors=continue" will avoid a system halt and just mark the file 
  2078.        system as bad (forcing e2fsck on next Linux boot) ; but if you continue 
  2079.        to work intensively after a file system error, you are likely to spread 
  2080.        the error and make things even worse. 
  2081.  
  2082.  
  2083. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2084.  
  2085. [-output=[com1|com2]] : Makes ext2-os2 write its messages on COM1 or COM2 port 
  2086. in addition to the ext2-os2 monitor. 
  2087.  
  2088. Note:  Output to COM ports has a performance hit, but can be necessary for 
  2089.        tracing in some cases. 
  2090.  
  2091.  
  2092. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2093.  
  2094. [-tz:<time zone in minutes from UTC>] : Sets the time zone to be taken into 
  2095. account for file dates and times. Please read Time zone considerations. 
  2096.  
  2097.  
  2098. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2099.  
  2100. /Q : Quiet install. Prevents the filter from displaying messages. 
  2101.  
  2102.  
  2103. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2104.  
  2105. /V : Verbose install. Displays some diagnostic messages. 
  2106.  
  2107.  
  2108. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2109.  
  2110. /W : Allows the virtual partitions to be written to. 
  2111.  
  2112.  
  2113. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2114.  
  2115. /A : Virtualize all partitions found. The only good reason to use this is along 
  2116. with the /M option when you want to control the mounting order of all the 
  2117. partitions. You must use the /W option if you use the /A option; otherwise OS/2 
  2118. may crash when it tries to write to the partition. 
  2119.  
  2120. Note:  Using the /A option may change your drive letters causing the your 
  2121.        system to be unbootable. Use the /M option together with /A. (This may 
  2122.        change in the future. 
  2123.  
  2124.  
  2125. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2126.  
  2127. /M <mount list> : Mounts the partitions in the order specified in the mount 
  2128. list, which should be a list of numbers separated by commas. The partitions are 
  2129. numbered 0 on a first come basis. (Not the OS/2 uses.) 
  2130.  
  2131.  
  2132. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2133.  
  2134. sync.exe does exactly what its Unix counterpart (sync) does : it commits all 
  2135. buffered data to disks. 
  2136.  
  2137. Invocation : 
  2138.  
  2139. sync
  2140.  
  2141. Note:  Please ensure that all ext2fs formatted removable media are in their 
  2142.        drives when you invoke sync.exe. 
  2143.  
  2144.  
  2145. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2146.  
  2147. IBM Visualage C++ version 3.0 for OS/2. 
  2148.  
  2149. Note:  The CSD CTC305 is highly recommended. 
  2150.  
  2151.  
  2152. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2153.  
  2154. IBM Assembly Language Processor (ALP) version 4.00. 
  2155.  
  2156. Note:  Earlier versions of ALP will NOT work. 
  2157.  
  2158.  
  2159. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2160.  
  2161. Microsoft Visual C++ 1.51. 
  2162.  
  2163. Note:  This is actually MSC version 8.0c and is available as the 16 bits 
  2164.        compiler in the MS Visual C++ 2.0 package. 
  2165.  
  2166.  
  2167. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2168.  
  2169. Borland C++ version 4 
  2170.  
  2171.  
  2172. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2173.  
  2174. Microsoft Assembler (MASM) 5.10A.15 
  2175.  
  2176. Note:  This is the version of MASM included in the DevCon DDK. 
  2177.  
  2178.  
  2179. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2180.  
  2181. Borland Turbo Assembler (available with Borland C++ 4) 
  2182.  
  2183.  
  2184. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2185.  
  2186. IBM Linker for OS/2 (ILink) version 1. 
  2187.  
  2188. Note:  This is the version of ILINK included in the IBM Visualage C++ package, 
  2189.        with CSD CTC305 installed (ILINK version 01.04.r1a_CTC305A). 
  2190.  
  2191.  
  2192. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2193.  
  2194. Microsoft Linker (LINK) version 5.6. 
  2195.  
  2196. Note:  This is the version of LINK included in the Microsoft Visual C++ version 
  2197.        2.0 package. 
  2198.  
  2199.  
  2200. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2201.  
  2202. linux fdisk 3.04 output for disk 1 (this is actually an OS/2 port of fdisk : 
  2203. 1:1 means /dev/hda1 and so on) : 
  2204.  
  2205. fdisk -uS -l 1:
  2206. Disk 1:: 6 heads, 35 sectors, 978 cylinders
  2207. Units = sectors of 512 bytes, counting from 0
  2208.    Device Boot    Start       End  #sectors  Id  System
  2209.       1:1          2100    104579    102480  83  Linux native
  2210.       1:2   *        35      2099      2065   a  OS/2 Boot Manager or Coherent swap
  2211.       1:3        104580    205379    100800   7  OS/2 IFS (e.g., HPFS) or NTFS or QNX2 or Advanced UNIX
  2212.       1:4             0         -         0   0  Empty
  2213.  
  2214. OS/2 fdisk output for disk 1 : 
  2215.  
  2216. FDISK /QUERY /DISK:1
  2217. Drive Name  Partition Vtype FStype Status   Start     Size
  2218.     1              :    1    0a      2          0        1
  2219.     1 Linux        :    1    83      1          1       50
  2220.     1 test        C:    1    07      5         51       49
  2221.                                              **BIOS:1024MB
  2222.  
  2223.  
  2224. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2225.  
  2226. linux fdisk 3.04 output for disk 2 (this is actually an OS/2 port of fdisk : 
  2227. 1:1 means /dev/sda1 and so on) : 
  2228.  
  2229. fdisk -uS -l 2:
  2230. Disk 2:: 64 heads, 32 sectors, 1169 cylinders
  2231. Units = sectors of 512 bytes, counting from 0
  2232.    Device Boot    Start       End  #sectors  Id  System
  2233.       2:1        163840   2095103   1931264   7  OS/2 IFS (e.g., HPFS) or NTFS or QNX2 or Advanced UNIX
  2234.       2:2   *        32    163839    163808  17  OS/2 BM: hidden IFS
  2235.       2:3       2095104   2394111    299008   5  DOS Extended
  2236.       2:4             0         -         0   0  Empty
  2237.       2:5   *   2095136   2394111    298976   7  OS/2 IFS (e.g., HPFS) or NTFS or QNX2 or Advanced UNIX
  2238.  
  2239. OS/2 fdisk output for disk 2 : 
  2240.  
  2241. FDISK /QUERY /DISK:2
  2242. Drive Name  Partition Vtype FStype Status   Start     Size
  2243.     2 ext2-os2     :    1    17      3          0       80
  2244.     2 Warp        D:    1    07      1         80      943
  2245.     2 001ff820    E:    2    07      0       1023      146
  2246.                                              **BIOS:1024MB
  2247.  
  2248.  
  2249. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2250.  
  2251. #
  2252. # Start LILO global section
  2253. #
  2254. boot = /dev/hda1       # install LILO in the superblock of /dev/hda1.
  2255. vga = normal           # force sane state
  2256. ramdisk = 0            # paranoia setting
  2257. prompt
  2258. #
  2259. # End LILO global section
  2260. #
  2261. # Linux bootable partition config begins
  2262. image = /vmlinuz
  2263.   root = /dev/hda1
  2264.   label = linux
  2265.   read-only            # Non-UMSDOS filesystems should be mounted read-only for checking
  2266. # Linux bootable partition config ends
  2267.  
  2268.  
  2269. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2270.  
  2271. Here's a brief description of what to do to install a WPS enabled system with 
  2272. BOOTOS2 on a LInux ext2fs partition, and put the WPS desktop tree on a HPFS or 
  2273. FAT partition (assume we want to store the WPS tree in D:\tmp\desktop) : 
  2274.  
  2275.    1. Go to the OS2 directory of your boot drive and make a copy of the file 
  2276.       named INI.RC (for instance TEST.RC) 
  2277.    2. Edit TEST.RC as follows : 
  2278.  
  2279.       Locate a line of the form 
  2280.  
  2281.               "PM_InstallObject" "Desktop;WPDesktop;?:\" "OBJECTID=<WP_DESKTOP>"
  2282.       and replace it with 
  2283.  
  2284.               "PM_InstallObject" "Desktop;WPDesktop;D:\tmp\desktop" "OBJECTID=<WP_DESKTOP>"
  2285.  
  2286.       Locate a line of the form 
  2287.  
  2288.               "PM_InstallObject" "Nowhere;WPFolder;?:\"  "OBJECTID=<WP_NOWHERE>"
  2289.       and replace it with 
  2290.  
  2291.               "PM_InstallObject" "Nowhere;WPFolder;D:\tmp\nowhere"  "OBJECTID=<WP_NOWHERE>"
  2292.  
  2293.    3. Reboot OS/2 FROM FLOPPIES 
  2294.    4. Press F3 to go to a command prompt. At the command prompt, go to the OS2 
  2295.       directory of your hard drive and type : 
  2296.  
  2297.             MAKEINI BOS2U300.INI TEST.RC
  2298.  
  2299.    5. Reboot OS/2 normally 
  2300.    6. Go to your BOOTOS2 directory and replace BOS2U300.INI with the one we've 
  2301.       created. 
  2302.    7. To install a WPS enabled system type the following command : 
  2303.  
  2304.             BOOTOS2 TARGET=F TYPE=WPS
  2305.  
  2306.